LeetCode算法
LeetCode算法
Ha啤酒来大杯的
不会就问我,问了也不一定会
展开
-
原地移除数组内某个值
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)27题链接:https://leetcode-cn.com/problems/remove-element...原创 2020-03-24 10:07:52 · 81 阅读 · 0 评论 -
下一个排列
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。例如:[1,2,7,4,3,1]->[1,3,1,2,4,7]来源:力扣(LeetCode)31题链接:https://leetcode-cn.com/problems/next-permuta...原创 2020-03-26 13:44:44 · 37 阅读 · 0 评论 -
二分法取左右边界
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。来源:力扣(LeetCode)34题链接:https://leetcode-cn.com/problems/find-first-and-last-position-of-elemen...原创 2020-03-27 17:03:55 · 139 阅读 · 0 评论 -
LeetCode 63不同路径II
题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/unique-paths-i...原创 2020-07-06 23:02:49 · 69 阅读 · 0 评论 -
LeetCode 309股票
class Solution: def maxProfit(self, prices: List[int]) -> int: n = len(prices) f = [[0]*3 for _ in range(n-1)] #初始化 f[i]为第i天结束时最大收益 f[0][0] = -prices[0] #持有 ...原创 2020-07-11 19:43:18 · 40 阅读 · 0 评论 -
LeetCode 2 2数相加
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# ...原创 2020-07-11 19:46:10 · 40 阅读 · 0 评论 -
Leetcode 315计算右侧小于当前元素的个数
给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入: [5,2,6,1]输出: [2,1,1,0]解释:5 的右侧有 2 个更小的元素 (2 和 1).2 的右侧仅有 1 个更小的元素 (1).6 的右侧有 1 个更小的元素 (1).1 的右...原创 2020-07-11 20:50:21 · 79 阅读 · 0 评论 -
Leetcode 174地下城游戏
一些恶魔抓住了公主(P)并将她关在了地下城的右下角。地下城是由 M x N 个房间组成的二维网格。我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间...原创 2020-07-12 14:45:27 · 80 阅读 · 0 评论 -
Leetcode 120三角形最小路径和
给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。例如,给定三角形:[[2],[3,4],[6,5,7],[4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。来源:力扣(LeetCode)链接:https...原创 2020-07-22 10:07:02 · 60 阅读 · 0 评论 -
Leetcode 785未知是否为连通图判断二分图
给定一个无向图graph,当这个图为二分图时返回true。如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有节点。每个节点都是一个在0到graph.length-1之间的整数。这图中没有自环和平行边: graph[i] 中不存在i...原创 2020-07-22 10:09:59 · 81 阅读 · 0 评论 -
Leetcode 96不同的二叉搜索树
给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ 3 2 1 1 3 2/ / \ ...原创 2020-07-22 10:11:58 · 47 阅读 · 0 评论 -
Leetcode 329矩阵中的最长递增路径
给定一个整数矩阵,找出最长递增路径的长度。对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。示例 1:输入: nums =[[9,9,4],[6,6,8],[2,1,1]]输出: 4解释: 最长递增路径为 [1, 2, 6, 9]。示例 2:输入: nums =[[3,4,5],[3,2,6],[2,2,1...原创 2020-07-26 11:29:25 · 58 阅读 · 0 评论 -
Leetcode 392判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例 1:s = "...原创 2020-07-27 22:16:29 · 128 阅读 · 0 评论 -
Leetcode 114二叉树展开为链表
给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树1/ 2 5/ \ 3 4 6将其展开为:123456来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2020-08-26 11:48:22 · 92 阅读 · 0 评论 -
Leetcode 17电话号码组合
https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/public class Solution { public Dictionary<char, string> dict = new Dictionary<char, string>{ ['2']...原创 2020-08-26 11:50:45 · 51 阅读 · 0 评论 -
Leetcode 257二叉树所有路径
输入:1/ 2 35输出: ["1->2->5", "1->3"]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-paths著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处...原创 2020-09-04 14:22:29 · 52 阅读 · 0 评论 -
Leetcode 60第k个排列
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutation-sequence...原创 2020-09-07 16:32:01 · 49 阅读 · 0 评论 -
Leetcode 50 Power(x, n)
求幂public class Solution { public double MyPow(double x, int n) { if(n == 0){ return 1; } //是否幂为负数 bool sign = n < 0 ? true:false; long N = (lo...原创 2020-09-08 22:35:01 · 45 阅读 · 0 评论 -
Leetcode 39 组合总和
输入:candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]public class Solution { //c# 只能这样写。被坑了好久。sb IList private IList<IList<int>> res = new List<IList<int>>(...原创 2020-09-09 22:18:39 · 50 阅读 · 0 评论 -
Leetcode 216 组合总和III
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/combination-sum-iii著作权归...原创 2020-09-10 17:29:37 · 65 阅读 · 0 评论 -
Leetcode 40 组合总和II
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1...原创 2020-09-11 23:49:14 · 82 阅读 · 0 评论 -
Leetcode 94 二叉树中序遍历(非递归)
/** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNode left; * public TreeNode right; * public TreeNode(int x) { val = x; } * } ...原创 2020-09-15 19:51:42 · 65 阅读 · 0 评论 -
Leetcode 47 全排列
给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。public class Soluti...原创 2020-09-18 22:52:06 · 52 阅读 · 0 评论 -
Leetcode 2 两数相和
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode ...原创 2020-10-04 20:54:26 · 74 阅读 · 0 评论 -
Leetcode 530 二叉搜索树的最小绝对差
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。示例:输入:13/2输出:1解释:最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst著作权归领扣...原创 2020-10-12 22:58:10 · 55 阅读 · 0 评论