极客时间算法训练营课程笔记

极客时间算法训练营课程笔记

  • 刷题最大的误区:只做一遍
  • 加速最好的方法和核心思想:1 升维 (双指针,或一维数组维护两个序列号) 2 空间换时间
  • 核心思想:第一周第三课第一节
  • 例题:第一周第三课第二节,移动零

写下想到的所有方法
leetcode-cn查好方法
题目国际站 most-votes
无毒神掌
主要思想
高级算法模板

本地git配置备份

$ git config --global --list
user.email=lx169978@alibaba-inc.com
user.name=lx169978
gui.encoding=utf-8

提交作业:https://shimo.im/docs/m5rtM8K8rNsjw5jk/read

交作业网址:https://github.com/lexn-lexn/algorithm009-class02

连接复制在geek 评论中 作业一般连接形式 https://github.com/lexn-lexn/algorithm009-class02/tree/master/Week_02 

      提交issue地址 https://github.com/algorithm009-class02/algorithm009-class02/issues/19  对应week里面的issue

提交格式

#学号: G20200343040322
#姓名: 刘晓
#班级: 2班
#语言: python
#作业&总结链接: https://github.com/lexn-lexn/algorithm009-class02/tree/master/Week_02

-----------------------------------------第一周---------------------------------------------------------------
第一周第三课第三节
计算机核心原理
重复动作
本质决定:三大基本操作 ifelse for recursion
当不会题目时:
1)暴力
2)最简单情况
3)想到最简单情况后, 是否可以总结找到最小重复子单元,
4)找到后即可完成整个编程
例题:爬楼梯。
提示:条件走1或2步可能,那么假设最后还剩一步,那么前面有多少种走法就是F(n-1), 假设最后还剩两部,那么前面有多少种走法F(n-2)

第一周第四课第二节

核心思想

  最近相关性 -> 栈

  排队先到先得-> 队列

题目:有效括号

引申:洋葱式的思维模型即用栈。排队式思维模型用队列

 第一周作业:

1移动零  2 两数求和

class Solution:
    def moveZeroes(self, nums):
        i = 0
        n_l = len(nums)
        for j in range(n_l):
            if nums[j] != 0:
                nums[i], nums[j] = nums[j], nums[i]
                i += 1


s = Solution()
n = [1, 20, 0, 2, 0, 7]
s.moveZeroes(n)
print(n)



class Solution(object):
    def two_sum(self, tar, nums):
        hashmap = {}
        for i in range(len(nums)):
            if (tar-nums[i]) in hashmap:
                return [i, nums[i]],[hashmap[tar-nums[i]], tar-nums[i]]
                pass
            hashmap[nums[i]] = i

ts = Solution()
res = ts.two_sum(10,[12,3,5,7,8,35,21,2,3,])
print(res)

  

原文地址:https://www.cnblogs.com/lx63blog/p/12934918.html