二分算法
二分算法基本框架
1 | class Solution { |
分析二分查找的一个技巧是:不要出现 else,而是把所有情况用 else if 写清楚,这样可以清楚地展现所有细节。本文都会使用 else if,旨在讲清楚,读者理解后可自行简化。
二分算法基本框架
1 | class Solution { |
分析二分查找的一个技巧是:不要出现 else,而是把所有情况用 else if 写清楚,这样可以清楚地展现所有细节。本文都会使用 else if,旨在讲清楚,读者理解后可自行简化。
写这个已经过了很久的的时间了 当时写好没写博客是因为怕这个有额外的问题,现在经过实验 表现的都还没不错 在10min内成绩提醒就会发送到你自己指定的邮箱 我会把代码开源放入Github,当然我也会隐去我自己的信息。
这篇博客也会教大家怎么使用他
项目地址:https://github.com/wolverinn/Waking-Up 这个项目是同学推荐给我的 用来复习操作系统,计算机网络,以及数据库
在复习的过程中,发现了作者有些问题有笔误和有些问题闲置下来一直没有补充,所以就在当天提了几个Issue
送走了迷茫的2021年 迎来了可能最为艰难的2022年 上学期突然下定决心决定工作,这学期开学到现在陆陆续续的刷了150道力扣 其实很多都是水题。不过像我这样努力了一个月也去拿了个程序设计二等奖。也明白了我现在一直坚持的一句话,
任何时候努力都不算晚
数据输入
一般我常用的数据输入方法有两种,Scanner和BufferedReader。BufferedReader可以读一行,速度比Scanner快,所以数据较多的时候使用。注意BufferedReader用完记得关。
Scanner
1 | import java.util.*; |
BufferedReader
1 | import java.util.*; |
快速排序quickSort
快速排序要注意x取值的边界情况。取x = nums[left], nums分为[left, j]和[j + 1, right],或x = nums[right], nums分为[left, i - 1]和[i, right],否则会StackOverflow。
1 | public void quickSort(int[] nums, int left, int right) { |
例题:AcWing 785, LeetCode 912
归并排序mergeSort
mergeSort时间复杂度是稳定O(nlogn),空间复杂度O(n),稳定的。quickSort时间复杂度平均O(nlogn),最坏O(n^2),最好O(nlogn),空间复杂度O(nlogn),不稳定的。
public void mergeSort(int[] nums, int left, int right) {
if (left >= right)
return;
新建一个maven工程 注意选择JDK的版本 如果版本过高可能会不支持 最好选择8 9 11
所需要的工具 一台服务器 一个可以编译jar的java环境 nginx用来正向代理
xshell连接服务器
安装java环境
1 | yum install java-1.8.0-openjdk |
查看java是否安装好
1 | java -version |
创建自己项目的路径并且cd到该路径
1 | mkdir java |
用命令让他跑起来
[toc]Java实现pdf转为图片
首先创建一个maven工程 在pom.xml文件导入包的依赖
1 | <dependencies> |
第二步 在Java路径下创建一个子类PDF2IMAGE
然后导入包
1 | import java.awt.image.BufferedImage; |
主体结构
1 | public class PDF2IMAGE { |
主要利用pdf2Image方法
代码见下