
Java_leetcode
spring_3_shine
非专业励志狗,2分59秒热度男,间歇性幻想家
展开
-
204. 计数质数
题意:计算所有小于非负数整数 n 的质数数量。分析:素数筛法class Solution { public int countPrimes(int n) { boolean isPrime[]=new boolean[n]; for(int i=0;i<n;i++){ isPrime[i]=true; }原创 2018-03-26 16:45:59 · 1023 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II
题意:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖...原创 2018-05-03 17:01:35 · 1250 阅读 · 1 评论 -
LeetCode 121. 买卖股票的最佳时机
题意:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 ...原创 2018-05-03 16:55:22 · 310 阅读 · 0 评论 -
LeetCode 123.买卖股票的最佳时机 III
题意:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [3,3,5,0,0,3,1,4]输出: 6解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交...原创 2018-05-03 16:33:01 · 4932 阅读 · 1 评论 -
LeetCode 119.杨辉三角 II
题意:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]进阶:你可以优化你的算法到 O(k) 空间复杂度吗?分析:相比于在前面add(0,1),在后面直接add(1),要快一点Java_codeclass Solution { publi...原创 2018-04-21 15:03:51 · 1795 阅读 · 2 评论 -
LeetCode 118. 杨辉三角
题目:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]Java_Codeclass Solution { public List<L...原创 2018-04-21 14:41:57 · 1455 阅读 · 0 评论 -
LeetCode 206-Reverse Linked List(反转一个单链表)
题意:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?分析:头插法。迭代:newhead为新链的头, 1、每次从原链head里取出链头,命名为now(待插入元素), 2、更新原链 3、将now,插入到newhead首部递归: 代码虽短,却很巧妙,见这原创 2018-05-02 21:52:47 · 1507 阅读 · 0 评论 -
LeetCode 830. Positions of Large Groups
题目:In a string S of lowercase letters, these letters form consecutive groups of the same character.For example, a string like S = “abbxxxxzyy” has the groups “a”, “bb”, “xxxx”, “z” and “yy”.Call...原创 2018-05-09 14:49:34 · 662 阅读 · 0 评论 -
LeetCode 695. 岛屿的最大面积(dfs)
题目:给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为0。)示例 1:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0],...原创 2018-04-20 12:57:50 · 641 阅读 · 0 评论 -
LeetCode 283. 移动零
题意:给定一个数组 nums, 编写一个函数将所有 0 移动到它的末尾,同时保持非零元素的相对顺序。例如, 定义 nums = [0, 1, 0, 3, 12],调用函数之后, nums 应为 [1, 3, 12, 0, 0]。注意事项:必须在原数组上操作,不要为一个新数组分配额外空间。尽量减少操作总数。分析:先将非0数移到首部,尾部补零java_code:...原创 2018-04-20 10:58:34 · 820 阅读 · 0 评论 -
LeetCode 141. 环形链表
题目:给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?分析:方法一:用HashSet把已访问过的节点存起来 方法二:快慢指针追击,如果慢指针能追上快指针,那一定成环。若不成环,则最后一定能结束遍历JavaCodeHashSetpublic class Solution { public boolean hasCycle(Li...原创 2018-05-08 20:53:35 · 266 阅读 · 0 评论 -
LeetCode 766. 托普利茨矩阵
题目:如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵。给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True。示例 1:输入: matrix = [[1,2,3,4],[5,1,2,3],[9,5,1,2]]输出: True解释:123451239512在上面这个矩阵中, 对角线分别是 "[9]", "[5, 5]...原创 2018-04-19 16:03:11 · 952 阅读 · 0 评论 -
LeetCode 80. 删除排序数组中的重复项 II
题意:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新长度后面的元素。示原创 2018-04-19 15:52:20 · 1851 阅读 · 1 评论 -
LeetCode 566. 重塑矩阵
题意:在MATLAB中,有一个非常有用的函数 reshape,它可以将一个矩阵重塑为另一个大小不同的新矩阵,但保留其原始数据。给出一个由二维数组表示的矩阵,以及两个正整数r和c,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。如果具有给定参数的reshape操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。示例 1:输入: nums =原创 2018-04-19 12:01:12 · 746 阅读 · 0 评论 -
LeetCode 561 数组拆分
题意:给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。示例 1:输入: [1,4,3,2]输出: 4解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).提示:n 是正整数,范围在 [1, 10000].数组中的元素范围在原创 2018-04-19 11:33:20 · 636 阅读 · 0 评论 -
LeetCode 268. 缺失数字
题目:给出一个包含 0, 1, 2, …, n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。案例 1输入: [3,0,1]输出: 2案例 2输入: [9,6,4,2,3,5,7,0,1]输出: 8注意事项:您的算法应该以线性复杂度运行。你能否仅使用恒定的额外空间复杂度来实现它?分析:题目不难,解法有意思,三个:异或: b...原创 2018-04-22 11:04:45 · 522 阅读 · 0 评论 -
83. 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素使得每个元素只留下一个。案例:给定 1->1->2,返回 1->2给定 1->1->2->3->3,返回 1->2->3/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(原创 2018-03-27 22:38:31 · 853 阅读 · 0 评论 -
21. 合并两个有序链表
合并两个已排序的链表,并将其作为一个新列表返回。新列表应该通过拼接前两个列表的节点来完成。 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */cla原创 2018-03-26 17:20:38 · 211 阅读 · 0 评论 -
LeetCode 82. 删除排序链表中的重复元素 II
题目:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3分析:每次遇见相同的一段,都整体删除。 这样每次处...原创 2018-05-05 11:28:45 · 769 阅读 · 0 评论