![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
算法
用月光取暖
热爱开发,终身学习
展开
-
leetcode 51 N皇后问题
经典的回溯算法问题 我们需要想清楚2点 需要使用回溯算法 如何判断两个皇后是否可以相互攻击 回溯算法就不需要多说了。判断2个皇后是否可以相互攻击,主要看是否是同一行,同一列,或者同一对角线的。我们可以开额外的空间存储存储同列的,同行的,同对角线的坐标,同对角线的怎么把他们用一个确定的数字表示呢?我们可以把他们分为2类 从右下角到左上角,也就是斜率为-1 这条线上的坐标均有 x+y = k(常...原创 2020-01-28 14:14:36 · 193 阅读 · 0 评论 -
leetcode 343 整数拆分
package undone; public class t343 { public static void main(String[] args) { t343 t = new t343(); Solution solution = t.new Solution(); System.out.println(solution.integerBre...原创 2020-01-28 10:42:04 · 127 阅读 · 0 评论 -
和为K的子数组
leetcode 一看到子数组的题,应该要马上想到这种前缀和的解法,即为 子数组(i - i+n)= k,那么肯定有 (0 - n) - (0 - i) = k,因此我们只需要存储每一个0到i的值就可以了。 class Solution { public int subarraySum(int[] nums, int k) { if(nums == null) { ...原创 2020-01-02 21:41:11 · 124 阅读 · 0 评论 -
不用加减乘除做加法
不用加减乘除做加法 题目链接 选自剑指offer65 public class Solution { public int Add(int num1,int num2) { int sum, carry; while(num2 != 0) { sum = num1 ^ num2; carry = (num1 &...原创 2019-12-23 11:38:23 · 82 阅读 · 0 评论 -
leetcode 239 计算滑动窗口最大值
https://leetcode-cn.com/problems/sliding-window-maximum/ 采用双向队列的方法,代码 如下 class Solution { public int[] maxSlidingWindow(int[] nums, int k) { if(nums == null || nums.length == 0 || nums.lengt...原创 2019-12-22 16:11:44 · 75 阅读 · 0 评论 -
leetcode找出数组中出现1次的数字
leetcode-找出数组中出现1次的数字 例题1 https://leetcode-cn.com/problems/single-number/ 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 解析: 由于公式 a ^ a = 0.又 b & 0 = b因此我们直接遍历数组之后全部异或就行 class Solution { ...原创 2019-12-06 16:48:31 · 309 阅读 · 0 评论 -
leetcode-95-不同的二叉搜索树 II
题目链接https://leetcode-cn.com/problems/unique-binary-search-trees-ii/submissions/ 思路: 将1-n中的任意一个数视为树的根节点,左边的视为左子树,右边视为右子树。然后递归的对左右子树进行这种操作。 public List<TreeNode> generateTrees(int n) { ...原创 2019-09-20 13:03:55 · 53 阅读 · 0 评论