刷题
文章平均质量分 57
rookie123222
这个作者很懒,什么都没留下…
展开
-
leetCodeday12
一:方法总结二:题目448.找到所有数组中消失的数字给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。思路:1-n 用数组下标值来记录,比如nums[1] =2 ;则认为数字2已经出现,在数组第二个位置做记录。最后看数组哪一个位置没被做记录,返回该位置public List<Integer> findDisappearedNumbers(int原创 2021-11-14 18:56:39 · 608 阅读 · 0 评论 -
leetCode刷题day11
一:方法总结二:题目98.验证二叉搜索树给你一个二叉树的根节点root,判断其是否是一个有效的二叉搜索树。 public boolean isValidBST(TreeNode root) { return midOrder(root); } public boolean midOrder(TreeNode node){ if (node==null) return true; if (!midOr..原创 2021-11-11 18:31:10 · 4508 阅读 · 0 评论 -
LeetCode刷题Day10
一:方法总结二:题目79.单词搜索给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。思路:先遍历board,找到一个能匹配的字符,确定入口,同时创建新的 vis 数组保存已经走过的路径。public boolean exist(char[][] board, String word) { boolean[][] vis = new boolean[m][n];//保存已经...原创 2021-11-10 17:23:37 · 712 阅读 · 0 评论 -
leetCode刷题day08
一:方法总结1.回溯当答案的长度不确定时考虑使用回溯,回溯的条件可以是答案的长度,也可以是是否搜索到了数组最后2.栈涉及比大小,并且要记录下标时可以考虑使用栈二:刷题62.不同路径一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?思路:动态分析,dp[ i ][ j ]记录到达该位置的路劲数。先初始化数组,填好.原创 2021-11-08 21:14:27 · 106 阅读 · 0 评论 -
LeetCode刷题Day07
一:方法总结1.旋转图像顺时针90°=水平翻转+对角线翻转2.字符串排序String.toCharArray(str) -> char[ ]new String(char[ ]) ->str3.hashMap保存一一对应的两个值,适用于hashMapmap.get(key) 返回value4.对二维数组的操作二维数组排序:Arrays.sort(int[ ],int[ ]);重写compare方法ArrayList(int [m][ ]) -> int原创 2021-11-07 22:40:39 · 118 阅读 · 0 评论 -
leetCode刷题day06
一:方法总结1.优先队列PriorityQueue2.二分法左右两个指针i、j ,循环条件(i<=j),比较再更新指针i=(i+j)/2+1、j=(i+2)/2-1;二:题目23.合并K个升序链表思路:将每个链表的第一个结点都加入堆并按升序排序,堆弹出的为最小数结点,并将该结点的下一个结点加入堆,直到所有结点加入完public ListNode mergeKLists1(ListNode[] lists) { ListNode head = null;原创 2021-11-04 22:39:20 · 120 阅读 · 0 评论 -
leetCode刷题day05
一:方法总结1.二:题目1.电话号码的字母组合原创 2021-11-01 21:11:06 · 3558 阅读 · 0 评论 -
leetcode刷题day04
一:方法总结二:题目1.正则表达式匹配'.' 匹配任意单个字符'*' 匹配零个或多个前面的那一个元素、思路:动态匹配数组dp,dp[i][j]表示字符串s前i个与字符串p前j是否能匹配。多加入一行一列表示空串的情况public static boolean isMatch1(String s, String p) { if (p == "") { if (s == "") return true;原创 2021-10-31 18:50:29 · 83 阅读 · 0 评论 -
leetcode刷题day03
一:方法总结二:题目1.整数反转注意:反转后的数字可能超出 int 类型能存储的范围public static int reverse(int x) { int y = 0;//记录余数 int ans = 0;//保存结果 while (x != 0) { y = x % 10; x = x / 10; if ((Integer.MIN_VALUE / 10 - y /原创 2021-10-28 23:20:56 · 83 阅读 · 0 评论 -
leetcode刷题day02
一:方法总结1.Stringsubstring(a,b) [a,b) 找字符子串2.StringBuilderappend(char)用于拼接字符toString() 转换为字符串二:题目1.寻找两个正序数组的中位数思路:先将两数组合并并排序,再找中位数 public static double sort1(int[] nums1, int[] nums2) { //先将两数组合并并排序,再找出中位数 int n = nums1.le原创 2021-10-28 00:05:35 · 76 阅读 · 0 评论 -
leetcode刷题day01
1.给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。思路:使用hashmap,设i为被减数,如果hashmap中有减数则结束public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> twoSum = new HashMap<>(); for (int i = 0; i <原创 2021-10-26 23:58:19 · 63 阅读 · 0 评论