算法
算法笔记
01空间站
快乐生活 ~@^_^@~笔芯
展开
-
动态规划-背包
【代码】动态规划-背包。原创 2023-05-25 11:08:58 · 97 阅读 · 0 评论 -
LeftGod算法笔记-第四节课
用步长实现,刚开始步长是1,左下标0和右下标1比较,左下标2和右下标3比较,以此类推。在一个数组中,任何一个前面的数a,和任何一个后面的数b,如果(a,b)是降序的,就称为降序对。在一个数组中,对于任何一个数num,求有多少个(后面的数*2)依然<num,返回总个数。在一个数组中,一个数左边比它小的数的总和,叫该数的小和。所以数组的小和为1+1+3+1+1+3+4+2=16。5左边比5小的数:1、3、4、 2。4左边比4小的数:1、3。1左边比1小的数:没有。3左边比3小的数:1。2左边比2小的数:1。原创 2023-05-14 23:18:54 · 115 阅读 · 0 评论 -
LeftGod算法笔记-第二节课
32位的数组,计算每一个数的位数是1的出现的次数,1的出现的次数整除M就代表这个位数没有出现K次的数。有余数就代表这个位数有K次的数。已知M > 1,K < M,找到出现了K次的数,要求额外空间复杂度O(1),时间复杂度O(N)。一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这两种数。一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这种数。一个数组中有一种数出现K次,其他数都出现了M次。不用额外变量交换数组中两个数的值。不用额外变量交换两个数的值。原创 2023-05-08 20:51:28 · 80 阅读 · 0 评论 -
LeftGod算法笔记-第一节课
有序数组中找到num:先找中间的数,判断是否等于要查找的数,不等于判断中间的数是否大于要查找的数,大于则调整右边界,小于则调整左边界。有序数组中找到>=num最左的位置:找到中间的数,不大于等于则调整左边界再次判断,大于等于则记录下标,同时调整右边界再判断。冒泡排序:每次从头比较两个数,将较大的数排在较小的数后面,再比较较大的数和后面的数,于是较大的就依次排在后面了。插入排序:每次比较两个值,将较小值排在较大值前面,并且再比较较小值与较小值前面的值,于是前面的值逐渐排序好。时间复杂度:按最高阶的来算。原创 2023-05-07 23:35:43 · 66 阅读 · 0 评论