我与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
本文来自博客园,作者:小粥超人_小hi_Hygge,转载请注明原文链接:https://www.cnblogs.com/hygge-98-areas/p/15992439.html