平方根知识点总结 第1篇
时间复杂度: O(log_2N)
有一个怪兽,有x点血,每一个回合,你可以选择砍一刀(一次性伤害)或者使用毒药(之后的每一回合都会掉血),最快多少回合杀死怪兽。
二分答案法,固定回合数,就可以确定毒药的伤害。
先求累加和除以3,求出最多可以供电多久。再去找f(8),判断能否坚持到x时间:
第一步在数组中找大于8的数,有两个,再判断小于8的电池,能不能给3个电池供电8分钟,只需要判断剩下的电池累加和,是否大于等于3*8,满足就一定可以分配供电。
平方根知识点总结 第2篇
大根堆:树的每一部分的最大值为根节点,就是大根堆。小根堆:树的每一部分的最小值为根节点,就是小根堆。
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3 6 7 5 1 3 -1 [-3 5 3] 6 7 5 1 3 -1 -3 [5 3 6] 7 6 1 3 -1 -3 5 [3 6 7] 7
利用堆思想
平方根知识点总结 第3篇
以公式的最高次为准,例 2x^3+5x+100 的时间复杂度为: O(x^3)
递归: T(N)=a*T(\frac{N}{b})+O(N^d) ,a:子问题调用次数。 \frac{N}{b}:每次子问题的范围。 O(N^d) :其它时间。
log_ba
log_ba=d……O(N^d*log_2N)\tag{2}
log_ba>d……O(N^{log_ba})\tag{3}
平方根知识点总结 第4篇
给你一个整数数组nums
和一个整数 k
,请你统计并返回该数组中和为 k
的连续子数组的个数 。
mp记录每一个节点的前缀和。用当前前缀和减去目标值的结果,去查寻有多少个前缀和等于这个结果。
一个字符串的的子串,满足每一个字母个数都是偶数的最长子串
用字典保存,如果前缀和相同,则者之间就是每一个字母个数都是偶数。
差分数组
长度n的数组,[1,3,4]表示,1-3的位置加4,[2,5,5]表示,2-4的位置加5。
解:在开始的位置加上对应的值,在结束的位置减去,对应的值,得到[0,4,5,-4,0,-5],然后求前缀和。
跳的位置超过n点或等于n点,之间的距离为偶数时,这为最小次数。
n个孩子站成一排,一个数组score。1、每一个孩子至少有一个糖果。2、相邻的两个孩子分数高的获得更多的糖果。
输入:ratings = [1,0,2]输出:5解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。
从左遍历,只判断左边规则得到ans1,从右边遍历,只判断右边规则得到ans2。求ans1和ans2对应位置的最大值。
平方根知识点总结 第5篇
list没有二维切片,numpy和torch有。
all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False 外都算 True。
记忆化回溯哦,空间换时间
不同方式访问数据(判断list,set的某个数是否存在)的时间。
合并有序数组(归并排序的最小步骤)
定义数组
对数器
创建长度为len的取最大值和最小值数组
append 、 extend和 +的区别
'='、切片、浅拷贝和深拷贝
列表
字典
切片
数的最高位
数字转换字符串
平方根知识点总结 第6篇
与&(有0得0)
或|(有1得1)
非~(取反)
异或^公式(无进位相加)
0^{\wedge}N=N \tag{1}
N^{\wedge}N=0 \tag{2}
a^{\wedge}b=b^{\wedge}a \tag{3}
用例:
>>和<<(xxx制右移除2和左移乘2)
平方根知识点总结 第7篇
图的存储方式:邻接表和邻接矩阵。
拓扑排序
最小生成树
由candidates=[2,3,6,7]组合成target=7 有多少种情况。输出[[2,2,3],[7]]。
ai可以和bi交换,是否能让a有序。
输入:expression = _2-1-1_ 输出:[0,2]解释:((2-1)-1) = 0 和 (2-(1-1)) = 2
建立邻接表和入度表,然后把入度为0度保存到queue里面。依次遍历每一个入度为0到的下一个节点,把对应点入度减1,当入度为0时,把改节点加入到queue里。(主要思想入度为0度保存到queue里面)