Leetcode
文章平均质量分 62
yuanCruise
工科生的笔尖
展开
-
动态规划 | 最长上升子序列长度
题目:300.最长上升子序列描述:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是4。一:利用递归实现最长上升子序列import timeimport random##### init 300.最长上升子序列 ########def lts(input): result = 0 for index in range(len原创 2023-06-20 14:35:17 · 298 阅读 · 2 评论 -
Leetcode(Python):排列问题(permutation)
Permutation返回nums矩阵的所有排列情况。例子:【1,2,3】首先把1加入到原始矩阵中,然后选择2放的位置,2放的位置有两个选择1前面或者后面,因此产生两个子列表{1,2}、{2,1}。对于第三个数,在前面的每个子列表中又有len(字列表)+1的位置可以选择。这样就完成了全体排列。(在代码中,首先循环整个nums列表,对每个子perm进行构建,每个子perm构建时要知道位置数目都是...原创 2018-05-02 11:14:10 · 1343 阅读 · 0 评论 -
Leetcode(C++):组合问题(combination)
Combinations利用C++实现,算法dfs解决该问题。所谓dfs就是深度优先搜索。深度优先搜索(DFS)是搜索手段之一。是从某个状态开始不断转移状态直到无法转移为止,然后退回到前一步状态继续转移其他状态,可以想象为一个沿树爬行的虫子,在一个交叉口他会首先随机选择一条分岔路口一直走下去直到死路为止,然后会返回到这个交叉口沿着另一条分支爬行下去,直到遍历所有可能的路径为止。根据这个特点,D...原创 2018-05-02 16:53:06 · 1327 阅读 · 0 评论 -
Leetcode(Python):sum类问题
Twosum解题思路:我构建了一个字典,该字典用于记录。字典的键是target减去当前num,对应的值是此时num的index(因为这个题目需要我们返回的就是index)。当下次出现第二个num在字典中出现时,说明这个num的index和上次记录的target-num的那个index就是我要输出的东西。 Threesum要求将数组中3个元素加起来为零的所有组合都挑选出来,但不能够...原创 2018-04-25 15:26:23 · 504 阅读 · 0 评论 -
Leetcode(Python): water类问题
Container with Most Water这道题也是可以用Two_pointer做的,为什么呢,因为你会发现当height[0] 小于height[5]的时候,(0,4)(0,3)(0,2)(0,1)所组成的区域都会比(0,5)小所以此时只需要将left指针加一,反之只需要right指针减一。 Trapping Rain Water这个问题和上述问题存在一定的共同点,这边...原创 2018-04-25 15:37:24 · 490 阅读 · 0 评论 -
Leetcode(Python):删除某些矩阵元素
Remove Duplicates from Sorted Array删除nums矩阵中重复的数值,使每个元素只出现一次,返回最后剩下矩阵的长度。我的做法个人认为没有错误,它的做法是注释掉的部分,通过移动newTrail来使得其和i能够是连续的两个值,然后可以判断是否相等。Remove Element从nums中删除所有指定val,返回还剩余值的个数。利用Two-pointer...原创 2018-04-27 08:51:11 · 7539 阅读 · 0 评论 -
Leetcode(Python):对矩阵做要求的操作
Median of Two sorted arrays这个题就是把两个矩阵用extend连接起来,然后对array排序之后判断矩阵元素个数是偶数还是奇数然后分开计算median(中位数)。 Product of array self这个代码相当于顺逆两个方向缩进来,正好可以把所有的数字(处理自己本身)都乘一遍,第一个循环是从头开始的,output列表中0位存的是1,第一位存的是处...原创 2018-04-28 10:17:28 · 1584 阅读 · 0 评论