上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 19 下一页
摘要: "44. 通配符匹配" 动态规划 做动态规划很简单,三步走: 第一步,判断可否用动态规划做,即判断是否满足两个条件:①最优子结构,②重叠子问题。显然该题求s与p是否match,可由其字串层层分解上来。 我语文不好一两句解释不清楚,不过看完这篇文章,基本就会判断是不是满足这两个条件了。 "算法 动态规 阅读全文
posted @ 2018-07-21 13:32 ACBingo 阅读(1628) 评论(0) 推荐(0) 编辑
摘要: "43. 字符串相乘" 高精度乘法,这题敲的太多了。。直接交了 阅读全文
posted @ 2018-07-19 23:13 ACBingo 阅读(346) 评论(0) 推荐(0) 编辑
摘要: "42. 接雨水" 思路:一块柱子能接水的量取决于它左右两边最高的柱子中较短的一个。 阅读全文
posted @ 2018-07-19 23:08 ACBingo 阅读(452) 评论(0) 推荐(0) 编辑
摘要: "41. 缺失的第一个正数" 注意这题要求时间复杂度应为O(n),并且只能使用常数级别的空间。 挺有意思的一个题。 思路: 通过交换元素的位置使得正确的位置仅存放正确的数字,例如给定一个数字3那么他应该在第三个位置,下标为2 。当数字 n 或 0 && nums[i] != i + 1) { if 阅读全文
posted @ 2018-07-19 22:40 ACBingo 阅读(182) 评论(0) 推荐(0) 编辑
摘要: "40. 组合总和 II" 这题跟上题做法几乎一样,只不过每个数能取多次改成了最多能取一次,同时candidates可能会出现相同字符,感觉还没有上一个题难。 代码仅需改两处即可,直接看代码把,有注释的地方即是改过的 class Solution { public List combinationS 阅读全文
posted @ 2018-07-19 22:04 ACBingo 阅读(300) 评论(0) 推荐(0) 编辑
摘要: "39. 组合总和" 直接暴力思路,用dfs+回溯枚举所有可能组合情况。难点在于每个数可取无数次。 我的枚举思路是: 外层枚举答案数组的长度,即枚举解中的数字个数,从1个开始,到target/ min(candidates)终止。 然后内层就可以dfs搜索了, 缕清状态的转换与回溯,题就做出来了。 阅读全文
posted @ 2018-07-19 21:45 ACBingo 阅读(914) 评论(0) 推荐(0) 编辑
摘要: "38. 报数" 水题 阅读全文
posted @ 2018-07-19 20:56 ACBingo 阅读(688) 评论(0) 推荐(0) 编辑
摘要: "37. 解数独" 1A 这个题其实15分钟左右就敲出来并且对了。。。但是由于我输错了一个数。。导致我白白debug一个多小时。。 没啥难度,练递归 dfs的好题 class Solution { private int which(int i, int j) { if (i 阅读全文
posted @ 2018-07-19 20:42 ACBingo 阅读(815) 评论(0) 推荐(0) 编辑
摘要: "非阻塞同步算法与CAS(Compare and Swap)无锁算法" 这篇问题对java的CAS讲的非常透彻! 锁的代价 1. 内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和 阅读全文
posted @ 2018-07-19 11:24 ACBingo 阅读(465) 评论(0) 推荐(0) 编辑
摘要: 最近事情比较少,闲暇之余温习巩固一下Java的一些基础知识,并做一些笔记, Java常用集合, 主要参考的这篇文章: "Java常用集合" ArrayList/Vertor 1. ArrayList 的主要消耗是数组扩容以及在指定位置添加数据,在日常使用时最好是指定大小,尽量减少扩容。更要减少在指定 阅读全文
posted @ 2018-07-18 19:20 ACBingo 阅读(275) 评论(0) 推荐(0) 编辑
摘要: "你应该知道的 volatile 关键字" 当一个变量被 volatile 修饰时,任何线程对它的写操作都会立即刷新到主内存中,并且会强制让缓存了该变量的线程中的数据清空,必须从主内存重新读取最新数据。 volatile 修饰之后并不是让线程直接从主内存中获取数据,依然需要将变量拷贝到工作内存中。 阅读全文
posted @ 2018-07-17 18:49 ACBingo 阅读(76) 评论(0) 推荐(0) 编辑
摘要: "869. 重新排序得到 2 的幂" 枚举排列,然后验证。比较暴力。 其实好一点的做法应该反过来,先把int范围下的2的N幂算出来,然后一个一个验证给出的数能不能拼成。 class Solution { public Integer[] nextPermutation(Integer[] nums) 阅读全文
posted @ 2018-07-15 11:01 ACBingo 阅读(547) 评论(0) 推荐(0) 编辑
摘要: "868. 二进制间距" 读懂题意就出来了 class Solution { public int binaryGap(int N) { String s = Integer.toBinaryString(N); int ans = 0; int k = 1; int i = 0; while (s 阅读全文
posted @ 2018-07-15 10:58 ACBingo 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 没啥好说的,直接上就行 "36. 有效的数独" class Solution { public boolean isValidSudoku(char[][] board) { Map map = new HashMap(); for (int i = 0; i 阅读全文
posted @ 2018-07-13 00:34 ACBingo 阅读(709) 评论(0) 推荐(0) 编辑
摘要: "35. 搜索插入位置" 二分,太简单,没啥好说的 阅读全文
posted @ 2018-07-12 23:42 ACBingo 阅读(526) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 19 下一页