自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

敲代码的猫

早日实现小鱼干自由

  • 博客(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 34.36.54. 搜索与回溯算法(中等)(DFS)

34.题目:剑指 Offer 34. 二叉树中和为某一值的路径​

2022-02-13 22:09:27 177

原创 剑指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]&amp.

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

原创 位运算 力扣题目一起练习

位运算基础知识摘选力扣题目136 、137、260 、645

2021-12-15 14:42:37 437

原创 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

原创 java代理对象增强方法

使用代理对象增强方法时,记得后面返回代理对象,而不是原对象!

2021-12-14 20:05:43 373

原创 剑指 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关注的人

提示
确定要删除当前文章?
取消 删除