我与CSP的一点小事

今天是20220311 见了YG老师,感觉被打了鸡血。然后想当初研一的时候,有了这篇LeetCode习题集

现在突然有了一点刺激之后,决定记录下这次的CSP经历,说无论怎么样是the shit,这次就要好好准备吧

1.前缀和  后缀和 线段树 区间树 第四题图的搜索算法 动态规划  并查集  二分搜索代码

2.熟悉环境 一定要找好一些基本算法的代码 然后考场上看题目 想一想可能要用什么算法,直接套代码

3.建议用python  六月份见 "Go the Hell" 

4.字符串模拟重点看一下 正则表达式

4.拿看小说的时间学算法  老师给的鸡血激励我迈出第一步,有了第一步我相信自己可以做得好 

6.老师给的刺激,果真有效 我满血复活了 我还是需要一点刺激才能前进,抽一鞭子就可以做到(果真贱) 

7.以后要是有什么存在动力的地方(尽管很是尴尬),我觉得还是有必要去一下,比如幼儿园、找mentor说说话,问一问问题 等等 这些地方得到的体会说出来别人都不相信其重要性,别人永远体会不了,但细节决定了你的成败,只有自己经历了才能体会 

8.万般滋味,都是生活呀

以下是记录学习的过程

前缀和

724. 寻找数组的中心下标 话说,前缀和最重要的是不是 (连续)和?扩展到差分的话,就是(连续)差?要是给某个区间都加上某个数字or减去某个数值的话,感觉是前缀和非常容易操作,但是操作起来不还是需要迭代,这样的计算方法是不是没那么简单了?

 1 class Solution:
 2     def pivotIndex(self, nums: List[int]) -> int:
 3         s = [0]
 4         for i in range(len(nums)):
 5             s.append(s[i]+nums[i])
 6         print(s)
 7 
 8         flag = 0
 9         for i in range(1,len(s)):             # 遍历s
10             if s[i-1] == s[-1] - s[i]:
11                 flag = 1
12                 return i-1                    # 因为s增加了第一0,所以遍历s,i要减1
13         
14         if flag == 0:
15             return -1

1413. 逐步求和得到正数的最小值  累计和=连续和=前缀和

 1 class Solution:
 2     def minStartValue(self, nums: List[int]) -> int:
 3         # 累加和就是连续和,所以可以考虑用前缀和(一位),顺便可以联想到差分
 4         s = [nums[0]]
 5         for i in range(1,len(nums)):
 6             s.append(s[-1]+nums[i])
 7         print(s)
 8         
 9         if min(s) <= 0:
10             return -(min(s)) + 1
11         else:
12             return 1

 

posted on 2022-03-11 10:04  小粥超人_小hi_Hygge  阅读(20)  评论(0编辑  收藏  举报