LeetCode实战
schwamaths
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java-LinkedList用法
构造方法构造方法LinkedList()构造一个空列表。LinkedList(Collection<? extends E> c) )构造一个包含指定 collection 中的元素的列表,这些元素按其 collection 的迭代器返回的顺序排列。package first_package;import java.util.*;public class test_linklist { public static void main(String[..原创 2020-05-16 11:32:36 · 308 阅读 · 0 评论 -
leetcode刷题(30天)-16. 最接近的三23. 买卖股票的最佳时机 III
class Solution { public int maxProfit(int[] prices) { if (prices.length == 0) { return 0; } int s1 = -prices[0]; int s2 =Integer.MIN_VALUE; int s3 =Integer.MIN_VALUE;...原创 2020-03-06 23:58:27 · 129 阅读 · 0 评论 -
leetcode刷题(30天)-16. 最接近的三数之和
class Solution { public int threeSumClosest(int[] nums, int target) { if (nums.length==0){return 0;} Arrays.sort(nums); //排序 int distance = nums[0] + nums[1] + nums...原创 2020-03-05 19:42:24 · 139 阅读 · 0 评论 -
leetcode刷题(30天)-15. 三数之和
class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> arr = new ArrayList(); if (nums.length == 0){ // 输入为空 ...原创 2020-03-04 17:01:45 · 175 阅读 · 0 评论 -
leetcode刷题(30天)-27. 移除元素
class Solution { public int removeElement(int[] nums, int val) { int i = 0; for (int j = 0; j < nums.length; j++) { if (nums[j] != val) { nums[i] = nums[j];...原创 2020-03-03 23:28:10 · 167 阅读 · 0 评论 -
leetcode刷题(30天)-26. 删除排序数组中的重复项
这个题目是我第二次做,此题的关键我认为在于,原地删除,由于数组里面存的是地址,实际上我们直接覆盖就可以了。class Solution { public int removeDuplicates(int[] nums) { if(nums.length == 0) return 0; int j =0; for (i...原创 2020-03-02 22:55:05 · 157 阅读 · 0 评论 -
leetcode刷题(30天)-两数之和
public class task01_01 { public int[] twoSum(int[] nums, int target) { if(nums.length == 0){ throw new IllegalArgumentException("No two sum solution"); } Map<Integ...原创 2020-03-01 23:42:04 · 176 阅读 · 0 评论 -
LSGO——LeetCode实战(树系列):124题 二叉树中的最大路径和(Binary Tree Maximum Path Sum)
给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。示例 1:输入: [1,2,3] 1 / \ 2 3输出: 6示例 2:输入: [-10,9,20,null,null,15,7]-10/ 9 20/ 15 7输出: 42来源:力扣(LeetCode)...原创 2019-09-21 14:46:39 · 158 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列):169题 求众数(Majority Element)
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majority-elemen...原创 2019-09-21 10:34:49 · 305 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列):121题 买卖股票的最佳时机(Best Time to Buy and Sell Stock)
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是...原创 2019-09-19 19:08:39 · 116 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列): 89题 格雷编码 (Gray Code)
格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。格雷编码序列必须以 0 开头。示例 1:输入: 2输出: [0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的 n,其格雷编码序列并不唯一。例如,[0,2,3,1] 也是一个有效的格雷编码序列。00 - 010...原创 2019-09-17 20:01:56 · 184 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列): 70题 爬楼梯 (Climbing Stairs)
原题:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1...原创 2019-09-11 22:30:02 · 162 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列): 62题 不同路径 (Unique Paths)
原题:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:从左上角...原创 2019-09-10 22:22:17 · 188 阅读 · 1 评论 -
LSGO——LeetCode实战(链表系列): 61题 旋转链表 (Rotate List)
原题:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->...原创 2019-09-10 20:38:26 · 165 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列): 59题 螺旋矩阵|| (Spiral Matrix ||)
原题:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/spiral-matrix-ii著作权归领扣网络所有。商业转载请联系官方授...原创 2019-09-10 19:59:48 · 145 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列): 54题 螺旋矩阵 (Spiral Matrix)
原题:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,2,3,4...原创 2019-09-10 18:33:00 · 201 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列):136题 只出现一次的数字(Single Number)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-...原创 2019-09-21 14:51:11 · 189 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):141题 环形链表(Linked List Cycle)
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0输出:true解...原创 2019-09-21 15:10:51 · 252 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):142题 环形链表||(Linked List Cycle ||)
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node index 1解释:...原创 2019-09-21 19:44:55 · 160 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列):238题 除自身以外数组的乘积(Product of Arrary Except Self)
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组...原创 2019-10-01 22:36:43 · 133 阅读 · 0 评论 -
LSGO——LeetCode实战(二叉树系列):236题 二叉树的最近公共祖先(Lowest Common Ancestor of a Binary Tree)
算法:从根节点开始遍历树。如果当前节点本身是 p 或 q 中的一个,我们会将变量 mid 标记为 true,并继续搜索左右分支中的另一个节点。如果左分支或右分支中的任何一个返回 true,则表示在下面找到了两个节点中的一个。如果在遍历的任何点上,左、右或中三个标志中的任意两个变为 true,这意味着我们找到了节点 p 和 q 的最近公共祖先。程序:# Definition for ...原创 2019-09-29 14:46:09 · 260 阅读 · 0 评论 -
LSGO——LeetCode实战(树系列):236题 二叉树的最近公共祖先( Lowest Common Ancestor of a Binary Tree)
原题:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例 1:输入: root = [3,5...原创 2019-09-28 22:49:18 · 208 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):235题 二叉树搜索树的最近祖先(Lowest Common Ancester of a Binary Search Tree)
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,...原创 2019-09-28 21:57:45 · 223 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):231题 2的幂(Power of Tow)
原题:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/power-of-two著作权归领扣网络所有。商...原创 2019-09-28 21:19:12 · 219 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):230题 二叉搜索树中的第K个最小元素(Kth Smallest Element in a BST)
原题:给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-bst著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明...原创 2019-09-28 20:47:01 · 257 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):215题 数组中的第K个最大元素(Kth Largest Element in a Array)
原题:在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。来源:力扣(LeetCode)...原创 2019-09-28 16:50:05 · 284 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):160题 相交链表(Intersection of Tow Linked Lists)
原题:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (...原创 2019-09-28 15:29:38 · 310 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):146题 LRU缓存机制(LUR Cache)
原题:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少...原创 2019-09-28 15:01:49 · 305 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列): 46题 全排列 (Permutations)
原题:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations著作权归领扣网络所有。商业转载请联系官方授权,非商业转...原创 2019-09-08 07:53:43 · 217 阅读 · 0 评论 -
LSGO——LeetCode实战(字符串系列): 43题 字符串相乘 (Multiply Strings)
原题:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含...原创 2019-09-05 21:37:00 · 155 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):206题 反转链表(Reverse Linked List)
原题:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?解法一(迭代):本来想写递归的,结果写着写着程序变成了迭代。思路:首先我们看到反转链表,最后其实就是将箭头方向变换为反方向...原创 2019-08-25 21:31:36 · 163 阅读 · 0 评论 -
LSGO——LeetCode实战(字符串系列):557题 反转字符串中的单词(Reverse Words in s String |||)
原题:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。解法一:思路:将每个word提取出来,进行上一篇博客的字符...原创 2019-08-25 15:46:04 · 174 阅读 · 0 评论 -
LSGO——LeetCode实战(字符串系列):344题 反转字符串(Reverse String)
原题:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。解法一:这个就是暴力解法,直接把值往相应的位置insertclass Solution(object): ...原创 2019-08-25 12:19:38 · 149 阅读 · 0 评论 -
python内存拷贝机制
https://www.cnblogs.com/Liubit/p/7668476.html转载 2019-08-25 12:13:21 · 554 阅读 · 0 评论 -
LSGO——LeetCode实战():292题 Nim游戏(Nim Game)
原题:你和你的朋友,两个人一起玩Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块 还...原创 2019-08-25 10:54:16 · 256 阅读 · 0 评论 -
LSGO——LeetCode实战(树系列):104题 二叉树最大深度(Maximum Depth of Binary Tree)
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回它的最大深度3 。解法一(递归法):首先我说一些我对于树这系列的算法题的理解(可能有些...原创 2019-08-24 22:25:22 · 207 阅读 · 0 评论 -
LSGO——LeetCode实战(链表系列):237题 删除链表中的节点(Delete Node in a Linked List)
原题:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 --head =[4,5,1,9],它可以表示为:解法一:其实这个题目并不难,主要是容易固定思维,导致题意理解错。比如我一开始认为这题目应该告诉我首节点head,同时题目删除的时候应该删除node这个链表的首节点的地址而不是val值。而实际的题目意思是删除原链...原创 2019-08-24 21:32:12 · 236 阅读 · 0 评论 -
LSGO——LeetCode实战(数组系列):148题 排序链表(Sort List)
原题:在O(nlogn) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5# Definition for singly-linked...原创 2019-08-24 16:02:41 · 160 阅读 · 0 评论 -
LSGO——LeetCode实战(贪心算法系列):122题 买股票最佳时机||(Best Time to Buy and Seell Stock ||))
给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。解法一:profit记录总利润,a记录一次买卖的利润。如果第二天的价格比第一天低,则在第一天将股票卖出,并计算之前的总利润。 继续遍历,如果第二天的价格比...原创 2019-08-24 11:07:01 · 203 阅读 · 0 评论 -
LSGO——LeetCode实战(栈系列):20题 有效括号(Valid Parentheses)
原题:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。解法一:(栈)如果此时我们遍历的字符是括号的左半部分,那么将字符入栈,如果栈顶元素和此时遍历的元素正好组合成一个括号,则出栈。最后如果栈为空则返回True,反之,...原创 2019-08-24 10:24:27 · 153 阅读 · 0 评论
分享