w940853815 / my_leetcode

流水不腐,户枢不蠹

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

未独立解决的问题

  • [21] 合并两个有序链表

  • [26] 删除排序数组中的重复项 一开始自己的思路,但是 function 函数中 for 循环只循环了两次?
def function(nums):
    for n in nums:
        if nums.count(n) != 1:
            nums.remove(n)
    return len(nums)

if __name__ == '__main__':
    nums=[1,1,1,1]
    a=function(nums)
    for i in range(a):
        print(nums[i])

向v站提了这个问题https://www.v2ex.com/t/552743#reply7

有个解答明白了 第一,for 循环可以认为是根据索引的. 第二,remove 会移除第一个匹配项 当 remove 前两个 1 之后,nums[2]就不存在了,所以 for 循环直接结束.

回溯算法

result = []
def backtrack(路径, 选择列表):
    if 满足结束条件:
        result.add(路径)
        return
    
    for 选择 in 选择列表:
        做选择
        backtrack(路径, 选择列表)
        撤销选择

def backtrack2(未探索区域, res, path):
    if path 满足条件:
        res.add(path) # 深度拷贝
        # return  # 如果不用继续搜索需要 return
    for 选择 in 未探索区域当前可能的选择:
        if 当前选择符合要求:
            path.add(当前选择)
            backtrack2(新的未探索区域, res, path)
            path.pop()
  • [86] 分隔链表

About

流水不腐,户枢不蠹


Languages

Language:Python 100.0%