03 2021 档案

摘要:58. 最后一个单词的长度 题目链接 反向遍历 从字符串结尾处开始遍历,查找最后一个单词 注意可能会有空格后缀,要先排除 class Solution { public int lengthOfLastWord(String s) { int ans = 0, i = s.length() - 1; 阅读全文
posted @ 2021-03-17 13:11 一天到晚睡觉的鱼 阅读(59) 评论(0) 推荐(0)
摘要:57. 插入区间 题目链接 枚举 枚举每个区间,判断该区间与需要插入的区间是否相交 若不相交,且比需要插入的区间小,那么直接放入List中 若不相交,但比需要插入的区间大,那么先把区间插入,再把这个区间放入List 若相交,则把这个区间和需要插入的区间合并,继续枚举 class Solution { 阅读全文
posted @ 2021-03-16 15:14 一天到晚睡觉的鱼 阅读(76) 评论(0) 推荐(0)
摘要:56. 合并区间 题目链接 自定义比较器排序 按照左端点排序,若与前一个区间不重叠,则加入list 若与前一个区间重叠,则用右端点去更新前一个区间的右端点 注意: 自定义比较器需要传入Comparator对象,并且重写compare方法,第一个参数比第二个参数大时,返回正数 List转数组时,需要传 阅读全文
posted @ 2021-03-15 09:25 一天到晚睡觉的鱼 阅读(59) 评论(0) 推荐(0)
摘要:55. 跳跃游戏 题目链接 动态规划 使用reachable数组表示这个点能否到达 枚举每个点,若这个点能到达,就从这个点起跳,更新后面的点 每次更新的点可以从上一次最后更新的点开始 class Solution { public boolean canJump(int[] nums) { int 阅读全文
posted @ 2021-03-14 18:57 一天到晚睡觉的鱼 阅读(51) 评论(0) 推荐(0)
摘要:利用Git+Github进行团队协作开发 Github上新键项目,开发demo,在master分支上打tag,提交到远端 从新键develop分支,在develop分支进行开发,并提交到远端 git branch develop master # 从master分支上新建develop分支 git 阅读全文
posted @ 2021-03-14 18:46 一天到晚睡觉的鱼 阅读(131) 评论(0) 推荐(0)
摘要:54. 螺旋矩阵 题目链接 螺旋枚举 使用变量: 使用len[]记录两个维度的长度 使用marked[][]记录已经枚举过的位置 使用pos[]记录当前枚举到的位置 delta表示下一步的偏移量,i表示下一步要偏移的维度,cnt表示已经枚举过的数量 具体算法: 每次枚举,先进行偏移,若超出矩阵范围, 阅读全文
posted @ 2021-03-13 16:02 一天到晚睡觉的鱼 阅读(92) 评论(0) 推荐(0)
摘要:53. 最大子序和 题目链接 动态规划 以i结尾的最大子序和等于Max(以i-1为结尾的最大子序和+nums[i],nums[i]),也就是要不要前缀的问题 class Solution { public int maxSubArray(int[] nums) { int sum = nums[0] 阅读全文
posted @ 2021-03-11 10:36 一天到晚睡觉的鱼 阅读(45) 评论(0) 推荐(0)
摘要:52. N皇后II 题目链接 dfs 方法与前面一题相同,就是无需保存和打印棋盘,只需要统计解的数量即可 class Solution { int ans = 0; public int totalNQueens(int n) { dfs(n, 0, new boolean[n], new bool 阅读全文
posted @ 2021-03-10 14:45 一天到晚睡觉的鱼 阅读(50) 评论(0) 推荐(0)
摘要:51. N皇后 题目链接 dfs 枚举每一行皇后摆放的列 使用boolean类型的数组来标记已摆放皇后所在的列、主对角线、副对角线 主对角线为行+列,副对角线为行-列 class Solution { List<List<String>> ans = new ArrayList<>(); publi 阅读全文
posted @ 2021-03-09 16:18 一天到晚睡觉的鱼 阅读(38) 评论(0) 推荐(0)
摘要:50. Pow(x, n) 题目链接 快速幂 当n为偶数时,xn = (x * x) n/2 ;当n为奇数时,xn = (x * x) n/2 * x 通过循环迭代,直至n为0 注意以下两点: 题目中n可能为负数,需要先取绝对值运算,最后结果再取倒数 对于Java中的Math.abs(int a)方 阅读全文
posted @ 2021-03-08 15:04 一天到晚睡觉的鱼 阅读(55) 评论(0) 推荐(0)
摘要:第8章 多态 8.2 转机 8.2.5 缺陷:域与静态方法 下文中用属性代替域 属性没有动态绑定,不存在多态 class Super{ public int field = 0; public int getField(){ return field; } } class Sub extends S 阅读全文
posted @ 2021-03-07 15:53 一天到晚睡觉的鱼 阅读(98) 评论(0) 推荐(0)
摘要:49. 字母异位词分组 题目链接 HashMap 使用一个HashMap来存储分组,键是内部排序后的字符串,值是键的字母异位词组成的List 对一个字符串,先转换为char数组进行排序,再在HashMap中查找,若找到则加入List,未找到就创建新的List加入HashMap中 class Solu 阅读全文
posted @ 2021-03-07 13:19 一天到晚睡觉的鱼 阅读(45) 评论(0) 推荐(0)
摘要:48. 旋转图像 题目链接 分组旋转 对比旋转前后的矩阵,marix[i][j]被替换为matrix[n-j-1][i],对于matrix[n-j-1][i]也是同样的操作 最终得出,四个数字为一组,顺时针旋转 按照这个规律,除了中间数字外,其他每组都旋转一次即可 class Solution { 阅读全文
posted @ 2021-03-05 13:03 一天到晚睡觉的鱼 阅读(67) 评论(0) 推荐(0)
摘要:47. 全排列II 题目链接 dfs 在上一题的基础上,数字会重复,但排列不能重复 所以我们需要先对数据排序,在每层递归选择数字时,不跟上一个重复即可 class Solution { List<List<Integer>> ans; public List<List<Integer>> permu 阅读全文
posted @ 2021-03-04 14:42 一天到晚睡觉的鱼 阅读(50) 评论(0) 推荐(0)
摘要:46. 全排列 题目链接 dfs 用marked标记这个数是否被选过 用now存储已选中的数 class Solution { List<List<Integer>> ans; public List<List<Integer>> permute(int[] nums) { ans = new Ar 阅读全文
posted @ 2021-03-03 10:25 一天到晚睡觉的鱼 阅读(29) 评论(0) 推荐(0)
摘要:第7章 复用类 7.2 继承语法 7.2.1 初始化基类 Java会自动在导出类的构造器中插入对基类构造器的调用 如果没有默认的基类构造器,就必须用super显式地调用基类构造器 7.3 代理 太空船控制模块: public class SpaceShipControls{ void forward 阅读全文
posted @ 2021-03-02 16:39 一天到晚睡觉的鱼 阅读(63) 评论(0) 推荐(0)
摘要:45. 跳跃游戏II 题目链接 动态规划 用step数组记录到达每个位置需要的最小步数,初始step[0]=0,其他为无穷 遍历每个位置,从这个位置起跳,更新后面的位置 但是要注意,每个位置都只需要更新一次 因为起跳点越靠前,步数一定越少 如果第二次更新,起跳点的步数一定不会比第一次更新的少 因此, 阅读全文
posted @ 2021-03-02 15:34 一天到晚睡觉的鱼 阅读(67) 评论(0) 推荐(0)
摘要:第6章 访问权限控制 6.2 Java访问权限修饰词 6.2.3 private:你无法访问 可以使用private组织别人访问某个特定的构造器 class Sundae{ private Sundae(){} static Sundae makeASundae(){ return new Sund 阅读全文
posted @ 2021-03-01 20:11 一天到晚睡觉的鱼 阅读(77) 评论(0) 推荐(0)
摘要:第5章 初始化与清理 5.4 this关键字 可以用this返回当前对象的引用,实现在一条语句里,对同一个对象进行多次操作 public class Leaf{ int i = 0; Leaf increment(){ i++; return this; } void print(){ System 阅读全文
posted @ 2021-03-01 18:47 一天到晚睡觉的鱼 阅读(74) 评论(0) 推荐(0)
摘要:44. 通配符匹配 题目链接 动态规划 dp[i][j]表示s到i-1,p到j-1,是否匹配 初始化dp[0][0]=true,前缀*也为true 对于每个i,j 如果p[j-1]是* 要么在匹配的字符串里加一个当前字符,即dp[i][j]=dp[i-1][j] 要么匹配空字符串,即dp[i][j] 阅读全文
posted @ 2021-03-01 12:56 一天到晚睡觉的鱼 阅读(53) 评论(0) 推荐(0)