
Leetcode题解 Java版
徐周
这个作者很懒,什么都没留下…
展开
-
Leetcode 29.Divide Two Integers Java版
参考:https://blog.youkuaiyun.com/yuqieshidi/article/details/48829465https://blog.youkuaiyun.com/linhuanmars/article/details/20024907转载 2019-01-13 17:08:23 · 143 阅读 · 0 评论 -
Leetcode 102. Binary Tree Level Order Traversal Java版
参考:http://www.voidcn.com/article/p-fltblucn-bmq.html题目地址:https://leetcode.com/problems/binary-tree-level-order-traversal/有三种解法:递归、队列、传统的BFS。1.递归解法:class Solution { public List<List<...转载 2019-02-26 11:04:48 · 136 阅读 · 0 评论 -
Leetcode 92. Reverse Linked List II Java版
解题思路:在指定范围内进行链表反转,只需在m-n范围内进行反转,然后连上m-1与n+1节点就可以。代码如下:class Solution { public ListNode reverseBetween(ListNode head, int m, int n) { ListNode dummy = new ListNode(0); dummy.n...原创 2019-01-29 13:41:59 · 229 阅读 · 0 评论 -
Leetcode 75. Sort Colors Java版
解析:这道题就是给了一个数组,其中都是乱序的0,1,2,让我们把乱序的0,1,2重新排列成0000……1111……2222.这里用一个i来遍历数组,left和right分别保存0和2的边界,i在遍历过程中遇到0与left交换,遇到2与right交换。需要注意的是,当i与left交换的时候,left++,i++,但是i与right交换之后,只有right--,i不需要变换,因为交换完的right...原创 2019-01-23 10:07:14 · 229 阅读 · 0 评论 -
Leetcode 74. Search a 2D Matrix Java版
解题思路:可以采用两次二分查找的方法查找目标,第一次二分查找定位到所在的行,第二次在所在的行运用二分查找找到目标。代码如下:class Solution { public boolean searchMatrix(int[][] matrix, int target) { if(matrix==null || matrix.length==0 || matrix[...原创 2019-01-23 09:37:04 · 126 阅读 · 0 评论 -
Leetcode 73. Set Matrix Zeroes Java版
解题思路:这道题很容易上手,是典型的矩阵操作问题,但是其中的陷阱是,我们遇到0的时候不能直接把矩阵的行列在当前矩阵直接置0,否则后面还没访问到的会被当成原来是0,最后会把很多不该置0的行列都置0了。我们看到其实判断某一项是不是0只要看它对应的行或者列应不应该置0就可以,所以我们可以维护一个行和列的判断数组,然后扫描一遍矩阵记录那一行或者列是不是应该置0即可,后面赋值是一个常量时间的判断。这种方法的...原创 2019-01-23 08:57:14 · 174 阅读 · 0 评论 -
Leetcode 70. Climbing Stairs Java版
原题链接:https://leetcode.com/problems/climbing-stairs/求解思路:这道题目可以根据斐波那契数列的定义进行求解。每一步可以爬一格或者两个楼梯,可以发现,递推式是f(n)=f(n-1)+f(n-2),也就是等于前一格的可行数量加上前两格的可行数量,可以用递归或者递推都是比较简单的。class Solution { public int c...转载 2019-01-22 11:40:43 · 164 阅读 · 1 评论 -
Leetcode 69. Sqrt(x) Java版
原题链接:https://leetcode.com/problems/sqrtx这道题运用了二分查找法的特性,有序,查找pos(在这道题中pos=value),找到返回pos,找不到返回邻近值。因为是求数x(x>=0) 的平方根, 因此,结果一定是小于等于x且大于等于0,所以用二分查找法肯定能搜到结果。以每一次的mid的平方来与target既数x相比:如果mid*mid ...转载 2019-01-22 11:21:38 · 197 阅读 · 0 评论 -
Leetcode 88. Merge Sorted Array Java版
解题思路:题目是简单的数组操作题目,维持三个index,其中一个从后往前扫描nums1数组,另一个从后往前扫描nums2数组,还有一个表示结果数组。每次扫描中,讲nums1与nums2较大的数组加入结果数组,另一个不动。具体代码如下:class Solution { public void merge(int[] nums1, int m, int[] nums2, int n)...原创 2019-01-25 09:31:11 · 105 阅读 · 0 评论 -
Leetcode 86. Partition List Java版
http://www.cnblogs.com/springfor/p/3862392.html转载 2019-01-25 09:12:06 · 208 阅读 · 0 评论 -
Leetcode 137. Single Number II Java版
本体是Single Number的变体,有两种解题方法:(1)利用用一个HashMap对于出现的元素进行统计,key是元素,value是出现个数,如果元素出现三次,则从HashMap中移除,最后在HashMap剩下来的元素就是我们要求的元素(因为其他元素都出现三次,有且仅有一个元素不是如此)。这样需要对数组进行一次扫描,所以时间复杂度是O(n),而需要一个哈希表来统计元素数量,总共有(n+2)...原创 2019-03-04 13:23:50 · 281 阅读 · 0 评论