算法
predawnlove
AI计算芯片通信库软件开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LeetCode做题拾遗】- 小智
LeetCode做题拾遗取某个数字的最低位 1 (操作后二进制除了该位是1其他都是0)二分查找的本质是二段性。Java里面对相同内容的char[]用哈希得到的结果不一致,即使toString()也如此。如果要哈希需要new String(char[]类型的变量)再去哈希。单调栈:查找每个数左侧第一个比它小的数。单调栈:查找每个数左侧第一个比它小的数。只有2的正整数次幂才不能写成m(m>1)个连续正整数相加和的形式。 取某个数字的最低位 1 (操作后二进制除了该位是1其他都是0) num & -原创 2022-03-15 11:31:07 · 695 阅读 · 0 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
剑指 Offer 48. 最长不含重复字符的子字符串 /** * 自己的写法: */ // public int lengthOfLongestSubstring(String s) { // char[] chars = s.toCharArray(); // Set<Character> hs = new HashSet<>(); // int res = 0; // int l = 0原创 2021-12-30 17:07:36 · 311 阅读 · 0 评论 -
剑指 Offer 46. 把数字翻译成字符串
剑指 Offer 46. 把数字翻译成字符串 /** * 我自己想出来的方法1: */ // public int translateNum(int num) { // char[] chars = String.valueOf(num).toCharArray(); // // dp[i] 表示截止第 i 位数字(包括chars[i]),目前已有的翻译种类 // // dp长度多1位, dp[i] 则对应 以 chars[原创 2021-12-30 16:33:03 · 125 阅读 · 0 评论 -
动态规划的背包问题,看完这篇博客,你再不会就来打我——背包九讲详细学习笔记(目前已更新完0/1背包,完全背包部分一周内更新)
1、 从这个状态转移方程可以看出,我们每次要更新的F(i)是在调用F(i-1),那也就是说,我们更新第i轮所用的数据,是第i-1轮算出来的。 那么,这里为什么要逆序呢?这是因为,在第i轮还没有开始计算的时候,我们肯定手上已经有了i-1轮的全部结果。此时我们因为只有一维的数组,所以我们需要考虑的一个问题就是避免状态覆盖。即,我不能让新状态,覆盖了老状态,从而导致我原本要用的老状态没了。 如果F[v]在这里还是从小到大更新的话,大的F[...原创 2020-08-20 22:55:46 · 335 阅读 · 0 评论 -
LeetCode Q666 PathSumIV(详细注释) DFS
int ans = 0; public int pathSum(int[] nums) { Node root = new Node(nums[0] % 10); for (int num: nums) { if (num == nums[0]) continue; int depth = num / 100, pos = num / 10 % 10, val = num % 10; p...原创 2020-07-19 14:00:59 · 147 阅读 · 0 评论 -
Java超详细的快速排序,堆排序,归并排序算法解析
###解题思路 新手做题的时候发现,没有java代码的详细的标准快速排序解法 于是自己写了个快速排序的详解 解析写在注释里面了 ###代码 ```java classSolution{ publicint[]sortArray(int[]nums){ sort(nums); returnnums; } publicstaticvoidsort(int[]a...原创 2020-06-07 21:32:28 · 400 阅读 · 0 评论
分享