#leetcode
王二小、
这个作者很懒,什么都没留下…
展开
-
leetcode——面试题 08.01. 三步问题---动态规划
class Solution: def waysToStep(self, n: int) -> int: step = [1, 1, 2] for i in range(3, n + 1): rst = step[i - 3] + step[i - 2] + step[i - 1] if rst > 10**6: rst = rst % (1000000007)原创 2021-12-10 15:31:27 · 111 阅读 · 2 评论 -
leetcode——1646.获取生成数组中的最大值---动态规划
class Solution: def getMaximumGenerated(self, n: int) -> int: nums = [0 for i in range(n + 1)] if n == 0: return 0 nums[1] = 1 for j in range(0, n // 2): if 2 <= 2*(j + 1) <= n:原创 2021-12-10 15:08:55 · 144 阅读 · 0 评论 -
leetcode——1137.第N个泰波那契数---动态规划
class Solution: def tribonacci(self, n: int) -> int: fn = [0, 1, 1] for i in range(2, n): fn.append(fn[i - 2] + fn[i - 1] + fn[i]) return fn[n]原创 2021-12-10 14:25:42 · 323 阅读 · 0 评论 -
leetcode——1025.除数博弈---动态规划
自己的解法class Solution: def divisorGame(self, n: int) -> bool: if n <= 1: return False m = 1 while m: # for i in range(1, n): n = n - 1 if n == 1 and m % 2 == 0:原创 2021-12-09 17:36:35 · 72 阅读 · 0 评论 -
leetcode——509.斐波那契数---动态规划
自己的解法class Solution: def fib(self, n: int) -> int: f = [0, 1] if n <= 1: return f[n] for i in range(1, n): f.append(f[i] + f[i-1]) return f[-1]原创 2021-12-09 16:40:56 · 89 阅读 · 0 评论 -
leetcode——392.判断子序列---动态规划
自己的解法class Solution: def isSubsequence(self, s: str, t: str) -> bool: mark = False if len(s) == 0: return True for i in range(len(t)): if len(s) != 0: if t[i] == s[0]:原创 2021-12-09 16:29:50 · 82 阅读 · 0 评论 -
leetcode——338.比特位计数---动态规划
自己的解法class Solution: def countBits(self, n: int) -> List[int]: left = -1 count = [0] num_1 = 0 for i in range(1, n + 1): temp = i while left != 1 and left != 0: left = temp //原创 2021-12-09 15:20:19 · 80 阅读 · 0 评论 -
leetcode——746. 使用最小花费爬楼梯---动态规划
动态规划class Solution: def minCostClimbingStairs(self, cost: List[int]) -> int: dp = [cost[0], cost[1]] for i in range(2, len(cost)): dp.append(min(dp[i - 2] + cost[i], dp[i - 1] + cost[i])) return min(dp[-1], dp[-2原创 2021-12-09 10:26:12 · 75 阅读 · 0 评论 -
leetcode——121.买卖股票的第一佳时机---动态规划
class Solution: def maxProfit(self, prices) -> int: min_num = prices[0] compare = 0 for i, item in enumerate(prices): min_num = min(min_num, prices[i]) if prices[i] > min_num: compar原创 2021-12-03 17:34:59 · 62 阅读 · 0 评论 -
leetcode——119.杨辉三角 2 ---动态规划
自己的解法class Solution: def getRow(self, rowIndex: int) -> List[int]: if rowIndex == 0: return [1] if rowIndex == 1: return [1, 1] ago = [1, 1] j = 1 while j < rowIndex: tm原创 2021-12-03 15:59:21 · 58 阅读 · 0 评论 -
leetcode——118.杨辉三角---动态规划
自己的解法class Solution: def generate(self, numRows: int) -> List[List[int]]: if numRows == 1: return [[1]] if numRows == 2: return [[1], [1, 1]] rst = [[1], [1, 1]] j = 2 start = 0原创 2021-12-03 15:01:10 · 82 阅读 · 0 评论 -
leetcode——70.爬楼梯---动态规划
动态规划class Solution: def climbStairs(self, n: int) -> int: if n <= 2: return n a = [0, 1, 2] step = 0 for i in range(3, n + 1): step = a[i - 1] + a[i - 2] a.append(step)原创 2021-12-03 13:48:53 · 71 阅读 · 0 评论 -
leetcode——53.最大子数组和 ----- 动态规划
动态规划class Solution: def maxSubArray(self, nums: List[int]) -> int: if len(nums) == 0: return 0 if len(nums) == 1: return nums[0] out_sum = nums[0] in_sum = 0 for i in range(len(nums)):原创 2021-12-03 11:24:10 · 54 阅读 · 0 评论 -
leetcode——35.搜索插入位置
自己的解法class Solution: def searchInsert(self, nums: List[int], target: int) -> int: for i in range(len(nums)): if nums[i] == target: return i if target > nums[i] and (i + 1) == len(nums):原创 2021-12-02 16:54:42 · 67 阅读 · 0 评论 -
leetcode——28.实现strStr()
自己的解法class Solution: def strStr(self, haystack: str, needle: str) -> int: if len(needle) == 0: return 0 if needle in haystack: mark = True else: return -1 if mark ==True:原创 2021-12-02 16:42:31 · 65 阅读 · 0 评论 -
leetcode——27.移除元素
自己的解法class Solution: def removeElement(self, nums: List[int], val: int) -> int: if len(nums) == 0: return 0 i = 0 while i < len(nums): if nums[i] == val: del nums[i] el原创 2021-12-02 16:34:33 · 171 阅读 · 0 评论 -
leetcode——26.删除有序数组中的重复项
自己的解法class Solution: def removeDuplicates(self, nums: List[int]) -> int: i = 1 if len(nums) <= 1: return len(nums) while i < len(nums): if nums[i] == nums[i - 1]: del nums[i]原创 2021-12-02 16:26:46 · 375 阅读 · 0 评论 -
leetcode——21.合并两个有序链表
自己的解法# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -原创 2021-12-02 16:06:19 · 175 阅读 · 0 评论 -
leetcode——20.有效的括号
自己的解法class Solution: def isValid(self, s: str) -> bool: if len(s) % 2 != 0: return False left = [] mark = False for i in range(len(s)): if s[i] == '(' or s[i] == '[' or s[i] == '{':原创 2021-12-02 15:24:08 · 67 阅读 · 0 评论 -
leetcode——14.最长公共前缀
自己的解法class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if len(strs) == 1 or len(strs[0]) == 0: return strs[0] str_pre = "" mark = True i = -1 while mark: i = i + 1原创 2021-12-02 14:16:11 · 133 阅读 · 0 评论 -
leetcode——13.罗马数字转整数
自己的题解class Solution: def romanToInt(self, s: str) -> int: sum = 0 for i in range(len(s)): if s[i] == 'I': sum = sum + 1 if s[i] == 'V': sum = sum + 5 if i >=原创 2021-12-02 11:15:40 · 467 阅读 · 0 评论 -
leetcode——9.回文数
自己的解法class Solution: def isPalindrome(self, x: int) -> bool: if x < 0: return False length = len(str(x)) if x < 10: return True if length % 2 == 0: if str(x)[0: length // 2]原创 2021-12-01 14:34:29 · 62 阅读 · 0 评论 -
leetcode——5. 最长回文子串
class Solution: def longestPalindrome(self, s: str) -> str: max_len = 1 # 从第二个字符开始判断 d = {} if len(s) == 1: return s mark = 0 for i in range(1, len(s)): if i - max_len >=0 an原创 2021-07-28 16:51:19 · 79 阅读 · 0 评论 -
leetcode——4. 寻找两个正序数组的中位数
class Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: new_num = [] nums1.extend(nums2) print(nums1) print(1//2) nums1.sort() if len(nums1) % 2 == 0:原创 2021-07-26 19:45:43 · 61 阅读 · 0 评论 -
leetcode——3. 无重复字符的最长子串
class Solution: def lengthOfLongestSubstring(self, s: str) -> int: if len(s) == 0: return 0 if len(s) > 0: d = {} count = 0 max_count = [0] new_start = 0原创 2021-07-26 16:25:09 · 61 阅读 · 0 评论 -
leetcode——2. 两数相加
# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: node = te原创 2021-07-26 16:16:49 · 55 阅读 · 0 评论 -
leetcode——1. 两数之和
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: d = {} for i in range(len(nums)): if nums[i] in d: return [d[nums[i]], i] d[target - nums[i]] = i return原创 2021-07-26 16:15:58 · 51 阅读 · 0 评论