- 博客(66)
- 收藏
- 关注
原创 leetcode-热题100之2.3.5.11.15 [Java]
题目2.2. 两数相加https://leetcode.cn/problems/add-two-numbers/ 想法:从头节点开始,对应位置相加,注意保存进位,累加到下一个节点;注意创建节点。代码:结果:题目3: 3. 无重复字符的最长子串https://leetcode.cn/problems/longest-substring-without-repeating-characters/想法:借助hashmap;遍历字符串,将字符存入hashmap,如果已存在,则判断当前len和i-j的大小比较;
2022-06-13 09:41:40
208
原创 leetcode-200.463.695.827 岛屿问题 [Java]
参考这个人讲的 感觉讲的蛮好力扣https://leetcode.cn/problems/number-of-islands/solution/dao-yu-lei-wen-ti-de-tong-yong-jie-fa-dfs-bian-li-/得到网格DFS的框架代码:题目200:200. 岛屿数量https://leetcode.cn/problems/number-of-islands/ 代码:结果:题目463:463. 岛屿的周长https://leetcode.cn/problems/
2022-06-12 10:27:55
364
原创 leetcode-611 有效三角形的个数 [Java]
题目:611. 有效三角形的个数https://leetcode-cn.com/problems/valid-triangle-number/一:暴力 三重循环 值得思考的是,如果首先排序的话,有a<b<c,那么a+c>b和b+c>a必定成立,只需判断a+b>c是否成立即可。代码:class Solution { public int triangleNumber(int[] nums) { int n=num...
2022-04-23 09:07:00
551
原创 jdk1.8 HashMap扩容机制变化
概述JDK1.8中的HashMap较于前代有了较大的变更,主要变化在于扩容机制的改变。在JDK1.7及之前HashMap在扩容进行数组拷贝的时候采用的是头插法,因此会造成并发情景下形成环状链表造成死循环的问题。JDK1.8中改用了尾插法进行数组拷贝,修复了这个问题。其次,JDK1.8开始HashMap改用数组+链表/红黑树组合的数据结构来提高查询效率,降低哈希冲突产生的链表过长导致的查询效率减缓现象。本文的主要内容是对JDK1.8中的扩容机制与前代进行比较。JDK1.8之前的扩容由res
2022-04-20 09:18:34
1953
原创 Git建立本地仓库并上传到Gitee
1. 电脑安装git客户端、注册gitee账号并登陆2. 到本地项目文件夹右键选择git bash here3. 输入个人信息(代码提交者)git config --global user.name "xxxx"git config --global user.email xxxxx@qq.com4. 在本地项目目录创建本地仓库git init输入命令后项目目录会有一个隐藏的.git文件夹5. 上传所有代码到本地仓库git add . (注意add后面有个点,与add之.
2022-04-04 23:24:18
687
原创 seata1.1.0注册进nacos1.3.1 启动报no available service ‘null‘ found 源码分析
seata1.1.0注册进nacos1.3.1 整合springcloud微服务 源码分析
2022-04-02 14:48:56
1880
1
原创 剑指offer 07.16.33. 分治算法(中等)
分治法的设计思想:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治策略:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。07.题目:想法(图参考k神):先序遍历可以得到每次的根,中序遍历可以根据根节点将其划分为[左子树-根节点-右子树],通过计算依次...
2022-02-18 22:09:57
347
原创 剑指offer 20. 67. 字符串(中等)
20.题目:剑指 Offer 20. 表示数值的字符串想法:写两个函数判断字符串是否为整数/小数.在主函数中将字符串按e/E拆分为字符串数组,若长度为2(且最后一个字符不是e/E),则判断左侧是否为整数/小数,以及右侧是否为整数.否则应判断整体是否为整数/小数. 返回与结果即可.代码:class Solution { public boolean isNumber(String s) { boolean res = true; ...
2022-02-18 21:26:13
260
原创 剑指offer 29. 31. 模拟(中等)
29.题目:剑指 Offer 29. 顺时针打印矩阵https://leetcode-cn.com/problems/shun-shi-zhen-da-yin-ju-zhen-lcof/想法:从左上角开始模拟转圈打印.代码:class Solution { public int[] spiralOrder(int[][] matrix) { int i,j,k,a,b; int m=matrix.length; //行数 .
2022-02-18 21:09:05
94
原创 剑指offer 14Ⅰ.57Ⅱ.62. 数学(中等)
14Ⅰ.题目:剑指 Offer 14- I. 剪绳子https://leetcode-cn.com/problems/jian-sheng-zi-lcof/想法1:动态规划,每次选择剪掉j长度,然后剩下可以选择剪或者不剪,再求max代码1:class Solution { public int cuttingRope(int n) { // 下标2->n存储每个数的最大乘积 int[] dp = new int[n+1];
2022-02-17 23:44:36
303
原创 剑指offer 39.66. 数学(简单)
36.题目:剑指 Offer 39. 数组中出现次数超过一半的数字https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/想法1:用haspmap存储各个数字出现的次数,再遍历找到出现超过一半的 ->超时想法2:首先递增排序,从第二个开始遍历数组,若和前边相同则统计出现次数,超过一半时返回;若不一样则令cnt=0;想法3:排序后直接返回.代码:
2022-02-17 23:24:44
360
原创 剑指offer 15.65.56Ⅰ.56Ⅱ. 位运算(简单-中等)
结合另一篇位运算博文一起:位运算 力扣题目一起练习_敲代码的猫-CSDN博客位运算基础知识摘选力扣题目136 、137、260 、645https://blog.csdn.net/weixin_52373240/article/details/121941063?spm=1001.2014.3001.550115.题目:剑指 Offer 15. 二进制中1的个数https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/
2022-02-15 23:20:03
441
原创 剑指offer 64.68Ⅰ.68Ⅱ. 搜索与回溯算法(中等)
64.题目:剑指 Offer 64. 求1+2+…+nhttps://leetcode-cn.com/problems/qiu-12n-lcof/想法:使用递归.但是终止递归需要if,能不能不用if? -> 使用&&短路代码:class Solution { public int sumNums(int n) { //if终止递归(题目不让) if(n<=0) return 0; return n+
2022-02-15 23:09:15
438
原创 剑指offer 55Ⅰ.55Ⅱ. 搜索与回溯算法(中等)
55Ⅰ.题目:剑指 Offer 55 - I. 二叉树的深度https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof/代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x.
2022-02-15 22:52:41
179
原创 剑指offer 40.41. 排序(中等)
40.题目:剑指 Offer 40. 最小的k个数https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/想法:先排序,再返回.class Solution { public int[] getLeastNumbers(int[] arr, int k) { Arrays.sort(arr); int[] res = new int[k]; for(int i=0;i&l
2022-02-15 22:46:49
223
原创 剑指offer 45.61. 排序(简单)
45.题目:剑指 Offer 45. 把数组排成最小的数https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/想法:自定义排序.首先转换为字符串数组,然后通过快速排序排列字符串顺序.参考:力扣k神代码:class Solution { public String minNumber(int[] nums) { String[] strs = new St..
2022-02-15 22:38:21
291
原创 剑指offer 12.13. 搜索与回溯算法(中等)(DFS)
12.题目:剑指 Offer 12. 矩阵中的路径https://leetcode-cn.com/problems/ju-zhen-zhong-de-lu-jing-lcof/想法:从某点开始"走",上下左右都可以,但也有很多不可以,如 1.边界不可以 2.走过的不可以 3.和字符串不匹配的不可以 带着这种想法写了三层循环,但发现不好判断走过的,也不好记录何时走下一个(因为设定的上下左右都试试,但可能上就可以了,下左...
2022-02-12 17:03:52
475
原创 剑指offer 21.57.58Ⅰ. 双指针(简单)
27.题目:剑指 Offer 21. 调整数组顺序使奇数位于偶数前面想法:双指针分别从头尾判断两数的奇偶,往中间移动或交换class Solution { public int[] exchange(int[] nums) { int i=0; int j=nums.length-1; while(i<j){ if((nums[i]&1)==0 && (nums[j]&.
2022-02-12 16:37:39
531
原创 剑指offer 18.22.25.52. 双指针(简单)
18.题目:剑指 Offer 18. 删除链表的节点想法:单链表删除特定值的节点,没有使用pre指针/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode de..
2022-02-11 10:59:33
199
原创 剑指offer 10Ⅰ.10Ⅱ.63 动态规划(简单)
10.Ⅰ题目:剑指 Offer 10- I. 斐波那契数列想法:F(N) = F(N - 1) + F(N - 2),递归时间复杂度太高,使用动态规划,移动ab.代码:class Solution { public int fib(int n) { int a = 0, b = 1, sum; for(int i = 0; i < n; i++){ sum = (a + b) % 1000000007;..
2022-02-10 21:42:23
187
原创 剑指offer 42.47.46.48 动态规划(中等)
总是对"动态规划"一知半解,这次,希望可以弄懂,想去知乎搜一些通俗的解释.(20 封私信 / 80 条消息) 如何理解动态规划? - 知乎 (zhihu.com)https://www.zhihu.com/question/39948290/answer/883302989这个讲得挺浅显,我这学龄前儿童能get到. 然后就开始做题了.42.题目剑指 Offer 42. 连续子数组的最大和https://leetcode-cn.com/problems/lian-xu-zi-shu
2022-02-10 21:29:04
370
原创 剑指offer 26.27.28 搜索与回溯算法(简单) 二叉树的DFS
26.题目:剑指 Offer 26. 树的子结构https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/想法:首先在A中查找B的根节点,若找到则从此时起对比AB,否则返回false. 注意B==null时,不是任何树的子结构,可优先判断.涉及两个递归:递归一findBsRoot函数作用? 在A中查找B的根节点 输入:TreeNodeA,TreeNodeB 返回值:无 递归的终止条件? A...
2022-02-08 11:11:41
523
原创 剑指offer 32Ⅰ.32Ⅱ.32Ⅲ 搜索与回溯算法(简单) 二叉树的BFS
Ⅰ面试题32 - I. 从上到下打印二叉树https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/想法:二叉树的层次遍历,借助队列实现,首先将二叉树的头节点放入,再从队列中依次取出节点,若该节点有左右孩子,再将其依次入队.代码:/** * Definition for a binary tree node. * public class TreeNode { * int val;
2022-02-08 09:16:06
218
原创 剑指offer 04.11.50. 查找算法(中等)
题目一:剑指 Offer 04. 二维数组中的查找https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/想法一:按行二分法想法二:暴力//法一:class Solution { public boolean findNumberIn2DArray(int[][] matrix, int target) { for (int i = 0; i < matrix...
2022-02-07 16:42:26
738
原创 剑指offer 03.53Ⅰ.53Ⅱ. 查找算法(简单)
题目一:剑指 Offer 03. 数组中重复的数字https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/想法一:使用flag数组标记是否出现过想法二:考虑到数字只有0~n-1,所以遍历将每个数字交换到顺序位置,当交换途中位置上数字已经正确时则为重复值代码://法一class Solution { public int findRepeatNumber(int[] nums) {
2022-02-06 21:24:01
389
原创 剑指offer 05.58Ⅱ 字符串
题目一:剑指 Offer 05. 替换空格https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/思路:遍历字符数组,替换. 似乎用stringbuilder更快代码://用stringclass Solution { public String replaceSpace(String s) { String res = ""; for(Character c : s.toCharArray.
2022-02-06 19:33:11
488
原创 剑指offer 06.24.35. 链表
题目一:剑指 Offer 06. 从尾到头打印链表https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/想法: 将链表倒序放入数组中 再返回数组代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(in
2022-01-11 19:37:21
185
原创 剑指 Offer 09.30. 栈
题目1:20. 有效的括号https://leetcode-cn.com/problems/valid-parentheses/代码:class Solution { public boolean isValid(String s) { char[] ch = s.toCharArray();//转为字符数组 Stack<Character> st=new Stack<Character>(); bool.
2021-12-17 12:10:47
118
原创 leetcode-1 两数之和 [Java]
题目:想法:双重循环代码:class Solution { public int[] twoSum(int[] nums, int target) { int[] two =new int[2]; int i,j; for(i=0;i<nums.length;i++){ for(j=i+1;j<nums.length;j++){ if(nums[i]+nums[.
2021-12-14 21:24:02
633
原创 剑指 Offer II 001. 整数除法
题目:想法:使用减法替代除法注意边界! 注意int的取值范围!!!代码:class Solution { public int divide(int a, int b) { boolean sign=true; int count=0; //计算int数值范围的最大 最小值 int max = (int)Math.pow(2,31); int min = -(int)Math.pow(2..
2021-12-14 19:55:01
912
原创 Property dataSource is required 异常处理 [IDEA]
应该将写好的druid.properties放在resources里,否则idea可能是没找到还可以检查下InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream(“druid.properties”);druid.properties这里要全小写、且不要有/
2021-12-03 15:43:30
435
原创 leetcode-125 回文串的定义 [Java]
类别:字符串回文串的定义题目:想法:两端遍历,具体见注释。代码:class Solution { public boolean isPalindrome(String s) { s=s.replace(" ","").toLowerCase();//删除空格并转为小写 int len = s.length(); int i,j; char[] ch = new char[len]; ch =..
2021-11-29 18:50:49
157
原创 特征选择小结:过滤式、包裹式、嵌入式
磕盐需要研究特征选择算法,故对所了解的信息做一个小结。常见的特征选择方法大致可以分为三类:过滤式、包裹式和嵌入式。通过特征选择可以减少特征维数、减少冗余特征、保留重要特征,使模型的学习能力和泛化能力更强。1.过滤式(Filter)按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。1.1 方差如果当前特征基本上都差异不大,因此可以认为这个特征对我们区分样本贡献不大,因此可以在构造特征过程中可以将其去掉。通过设定一个阈值,...
2021-11-28 15:11:14
4063
原创 leetcode-520 检测大写字母 [Java]
类别:字符串字符题目:想法:把字符串转为字符数组,统计大写字母的个数;判断全大写或全小写或一个大写字母位于首位时返回true,否则返回false。代码:class Solution { public boolean detectCapitalUse(String word) { int n=word.length(); char[] letter = new char[n]; letter = word.toCharArray();.
2021-11-28 10:01:50
202
原创 leetcode-238 除自身以外数组的乘积 [Java]
题目:想法:用两个数组head、tail存储一个位置前/后的所有数字的乘积,head和tail再按位相乘得到最终输出矩阵。代码:class Solution { public int[] productExceptSelf(int[] nums) { int n = nums.length; int[] head = new int[n]; int[] tail = new int[n]; int i;
2021-11-23 19:26:00
375
原创 leetcode-304 二维区域和检索 - 矩阵不可变 [Java]
题目:想法一:代码:class NumMatrix { int[][] sums; public NumMatrix(int[][] matrix) { int m = matrix.length; int n = matrix[0].length; sums = new int[m][n]; int i,j,a,b; for(i=0;i<m;i++){ fo
2021-11-23 13:55:50
277
原创 leetcode-303 区域和检索 - 数组不可变 [Java]
类别:题目:法一:直接计算代码:class NumArray { int[] nums; public NumArray(int[] nums) { this.nums=nums; } public int sumRange(int left, int right) { int sum = 0; for (int i = left; i <= right; i++) {
2021-11-22 15:23:09
274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人