
leetcode
盒马瞎操心
这个作者很懒,什么都没留下…
展开
-
leetcoe plus-one数组加一进位
给你一个数组,表示一个多位数,现在需要加1,输出加1后的数组比如 1999输出 2000public class Solution { public int[] plusOne(int[] digits) { int len = digits.length; for(int i=len-1;i>=0;i--){ if(((...原创 2019-04-21 02:23:00 · 211 阅读 · 0 评论 -
leetcode swap-nodes-in-pairs交换两两结点
题意:给定一个链表,交换每两个相邻节点并返回其头部。例如,在1->2->3->4中,您应该返回列表as2->1->4->3。您的算法应该只使用常量空间。不能修改列表中的值,只能更改节点本身。如果是基数,最后一个节点不需要交换/** * Definition for singly-linked list. * public class ListN...原创 2019-04-12 21:05:19 · 128 阅读 · 0 评论 -
leetcode binary-tree-level-order-traversal输出树的每一层
题意:给定二叉树,返回其节点值的级别顺序遍历。For example:Given binary tree{3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7return its level order traversal as:[ [3], [9,20], [15,7]]/** * Definition...原创 2019-04-12 19:18:47 · 140 阅读 · 0 评论 -
leetcode spiral-matrix-ii 数组顺时针填值
题意:给定一个整数n,生成一个以螺旋顺序填充从1到n 2元素的正方形矩阵。例如,n=3,您应该返回以下矩阵:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]这个代码中,当n为基数时,最后col会比scol小一位,最中间那点手动加上public class Solution { public int[][] generateMatrix...原创 2019-04-12 18:55:26 · 165 阅读 · 0 评论 -
leetcode jump-game贪心+dp
题意:给定一个非负整数数组,您首先被定位在数组的第一个索引处。数组中的每个元素表示该位置的最大跳跃长度。确定是否能够到达最后一个索引。例如:A=[2,3,1,1,4],返回真。A=[3,2,1,0,4],返回假。解题:定义一个能跳跃达到的最大长度maxlen = A[0]+1然后遍历A数组如果最大长度不能跳到当前点i+1,返回false如果最大长度能达到终点len,返回tru...原创 2019-04-12 16:09:15 · 157 阅读 · 0 评论 -
leetcode unique-paths动态规划
机器人位于M x N网格的左上角(下图中标记为“开始”)。机器人只能在任何时间点向下或向右移动。机器人正试图到达网格的右下角(在下图中标记为“完成”)。有多少可能的唯一路径?很简单的动态规划,dp[i][j]表示走到(i,j)有多少条路径public class Solution { public int uniquePaths(int m, int n) { i...原创 2019-04-03 02:53:25 · 159 阅读 · 0 评论 -
leetcode best-time-to-buy-and-sell-stock 求最大连续和变型
假设你有一个数组,里面存放的第i个元素表示第i天的股票的价格,如果你最多只允许进行一次交易(买进和卖出股票视为一次交易)请设计一个算法得到最大利润。解题思路:在满足i<j的情况下,找出一个最低值prices[i]跟最高值prices[j]跟求最大连续和一样public class Solution { public int maxProfit(int[] prices) {...原创 2019-04-03 01:54:04 · 110 阅读 · 0 评论 -
leetcode remove-duplicates-from-sorted-array 数组去重
题目:给定一个已排序的数组,将重复项移除到位,这样每个元素只出现一次,并返回新的长度。不要为另一个数组分配额外的空间,必须在内存恒定的情况下就地分配。例如,给定输入数组a=[1,1,2],您的函数应该返回length=2,而a现在是[1,2]。public class Solution { public int removeDuplicates(int[] A) { ...原创 2019-04-11 21:02:52 · 186 阅读 · 0 评论 -
leetcode count-and-say字符串
这道题算就是字符串处理的问题,序列中第一个字符串是“1”,接下来依次统计前一个字符串中连续相同字符的数量,并添加到下一字符串中。前15字符串如下(LeetCode上貌似只有18测试用例):11121121111122131221113112221111321321131131211131221132113111231131122111113122113311213211321...原创 2019-04-14 16:14:17 · 115 阅读 · 0 评论 -
leetcode next-permutation数组排列
实现下一个排列,它将数字重新排列到词典中的下一个更大的数字排列中。如果这种排列不可能,则必须将其重新排列为尽可能低的顺序(即按升序排序)。替换必须到位,不要分配额外的内存。下面是一些例子。输入在左列,相应的输出在右列。1,2,3→1,3,23,2,1→1,2,31,1,5→1,5,1比如第一组的排列从小到大的顺序是1 2 31 3 22 1 32 3 13 1 23 2 ...原创 2019-04-23 21:15:56 · 201 阅读 · 0 评论 -
leetcode construct-binary-tree-from-preorder-and-inorder-traversal给树的先序跟中序,求树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * public class TreeNode { * int val; * ...原创 2019-04-23 18:31:16 · 142 阅读 · 0 评论 -
leetcode binary-tree-level-order-traversal-ii倒序输出树的每一层
For example:Given binary tree{3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7return its bottom-up level order traversal as:[ [15,7] [9,20], [3],]解法一:每次将list保存到结果list的0下标的位置/**...原创 2019-04-23 00:16:24 · 117 阅读 · 0 评论 -
leetcode remove-nth-node-from-end-of-list输出链表的倒数第n个结点
这道题让我们移除链表倒数第N个节点,限定n一定是有效的,即n不会大于链表中的元素总数。还有题目要求我们一次遍历解决问题,那么就得想些比较巧妙的方法了。比如我们首先要考虑的时,如何找到倒数第N个节点,由于只允许一次遍历,所以我们不能用一次完整的遍历来统计链表中元素的个数,而是遍历到对应位置就应该移除了。那么我们需要用两个指针来帮助我们解题,pre和cur指针。首先cur指针先向前走N步,如果此时c...原创 2019-04-26 17:51:56 · 134 阅读 · 0 评论 -
leetcode valid-parentheses栈
题意:给定一个仅包含字符’(’、’)’、’’、’’、’[‘和’]'的字符串,确定输入字符串是否有效。括号必须以正确的顺序关闭,“()”和“()[]”均有效,但“(]”和“([)]”无效。题解:[ ( { [ ] ( ) } ) ] ( )这样是正确的可以左括号进栈,右括号出栈,出栈时看看跟右括号符不符合,还有字符是右括号但是栈已经为空的情况,以及字符串遍历完后栈中还有剩余的情况也是fa...原创 2019-04-26 16:38:55 · 299 阅读 · 0 评论 -
leetcode symmetric-tree判断两颗树是否对称
对于二叉树,检查它是否是自身的镜像(即,围绕其中心对称)。例如,此二叉树是对称的: 1 / \ 2 2 / \ / \3 4 4 3这个不对称 1 / \ 2 2 \ \ 3 3BFS/** * Definition for binary tree * public class TreeNode { * ...原创 2019-04-15 00:18:43 · 171 阅读 · 0 评论 -
leetcode permutations数字dfs
给定一组数字,返回所有可能的排列。例如,[1,2,3]有以下排列:[1,2,3]、[1,3,2]、[2,1,3]、[2,3,1]、[3,1,2]和[3,2,1]。用dfs,多熟悉ArrayList的用法import java.util.*;public class Solution { ArrayList<ArrayList<Integer>> res;...原创 2019-04-14 22:12:43 · 129 阅读 · 0 评论 -
leetcode remove-duplicates-from-sorted-list有序链表去重
For example,Given1->1->2, return1->2.Given1->1->2->3->3, return1->2->3./** * Definition for singly-linked list. * public class ListNode { * int val; * ListNod...原创 2019-04-14 18:28:59 · 268 阅读 · 0 评论 -
leetcode same-tree 判断两棵树是否相等
两棵树结构以及val相等则为相同的tree有递归跟非递归两种写法判断一下两棵树的是否同时有左右节点,当前节点val是否相同即可递归写法/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * ...原创 2019-04-02 04:53:45 · 250 阅读 · 0 评论 -
leetcode binary-tree-inorder-traversal输出树的中序遍历
左根右递归版本:/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */import java.util.*;pub...原创 2019-04-04 21:11:02 · 145 阅读 · 0 评论 -
leetcode search-a-2d-matrix在矩阵中查找一个数
有一个n*m的矩阵,满足以下特点:每行从小到大排序,每行的第一个数比上一行的最后一个数大。给你一个数,查找这个数是否在矩阵中。矩阵拉直就是一个有序排序的数组,直接二分查找。public class Solution { public boolean searchMatrix(int[][] matrix, int target) { int n = matrix.le...原创 2019-04-04 17:35:39 · 367 阅读 · 0 评论 -
leetcode rotate-image矩阵数组顺时针90度旋转
找规律public class Solution { public void rotate(int[][] matrix) { int n = matrix.length; int res[][]=new int[n+1][n+1]; for(int i=0;i<n;i++){ for(int j=0;j&...原创 2019-04-04 17:06:02 · 262 阅读 · 0 评论 -
leetcode search-insert-position查找
给定排序数组和目标值,如果找到目标,则返回索引。如果没有,则返回按顺序插入索引的位置。您可以假定数组中没有重复项。这里有几个例子。[1,3,5,6], 5 → 2[1,3,5,6], 2 → 1[1,3,5,6], 7 → 4[1,3,5,6], 0 → 0...原创 2019-04-04 16:06:04 · 127 阅读 · 0 评论 -
leetcode insertion-sort-list 使用插入排序对链表排序
使用插入排序对链表排序。插入排序就是不断的向一个已经排序的列表中(此处为代码中的sortedList)添加新的节点,并且保证添加节点后的列表仍然有序。这里用把排好序的头节点为head,未排序的为last每次排序让h=headhl = head的前一个节点让last与h对比大小/** * Definition for singly-linked list. * public clas...原创 2019-03-27 20:48:30 · 274 阅读 · 0 评论 -
leetcode merge-two-sorted-lists 合并两个有序链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public...原创 2019-04-05 03:03:42 · 125 阅读 · 0 评论 -
leetcode generate-parentheses括号回溯
给定n对括号,编写一个函数来生成格式良好的括号的所有组合。例如,给定n=3,解集为:For example, given n = 3, a solution set is:“((()))”, “(()())”, “(())()”, “()(())”, “()()()”关键:每次左括号比右括号多时可以加左括号或者右括号 x>y && x<n如果左括号等于右括号...原创 2019-04-05 04:40:35 · 136 阅读 · 0 评论 -
leetcode populating-next-right-pointers-in-each-node 链表中同一层的结点连接起来
简单点就是,给定完全二叉树,将它每一层的顶点串起来Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }For exampleGiven the following perfect bi...原创 2019-04-02 03:47:37 · 127 阅读 · 0 评论 -
leetcode container-with-most-water
给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色...原创 2019-04-01 21:23:14 · 217 阅读 · 0 评论 -
leetcode best-time-to-buy-and-sell-stock-ii 贪心
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = ...原创 2019-04-01 16:23:37 · 101 阅读 · 0 评论 -
Leetcode linked-list-cycle 判断链表是否有环
使用快慢指针看是否相遇/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */p...原创 2019-03-27 20:50:49 · 237 阅读 · 0 评论 -
leetcode maximum-depth-of-binary-tree 求树的深度
递归写法/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */import java.util.*;public c...原创 2019-04-01 06:17:41 · 133 阅读 · 0 评论 -
leetcode sort-list 使用归并排序对链表进行排序
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-03-27 19:07:59 · 196 阅读 · 0 评论