解法一:哈希表
解法二:双指针
排列硬币总共有 n 枚硬币 , 将它们摆成一个阶梯形状 , 第 k 行就必须正好有 k 枚硬币 。
给定一个数字 n , 找出可形成完整阶梯行的总行数 。
n 是一个非负整数 , 并且在32位有符号整型的范围内
解法一:迭代从第一行开始排列 , 排完一列、计算剩余硬币数 , 排第二列 , 直至剩余硬币数小于或等于行数
解法二:二分查找假设能排 n 行 , 计算 n 行需要多少硬币数 , 如果大于 n , 则排 n/2行 , 再计算硬币数和 n 的大小关系
解法三:牛顿迭代使用牛顿迭代求平方根 , (x + n/x)/2
假设能排 x 行 则 1 + 2 + 3 + ...+ x = n , 即 x(x+1)/2 = n 推导出 x = 2n - x
合并两个有序数组两个有序整数数组 nums1 和 nums2 , 将 nums2 合并到 nums1 中 , 使 nums1 成为一个有序数组 。
初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 假设 nums1 的空间大小等于 m + n , 这样它就有足够的空间保存来自 nums2 的元素 。
解法一:合并后排序
时间复杂度 : O((n+m)log(n+m)) 。
空间复杂度 : O(1) 。
解法二:双指针 从前往后将两个数组按顺序进行比较 , 放入新的数组
时间复杂度 : O(n + m) 。
空间复杂度 : O(m) 。
解法三:双指针优化从后往前
时间复杂度 : O(n + m) 。
空间复杂度 : O(1) 。
子数组最大平均数给一个整数数组 , 找出平均数最大且长度为 k 的下标连续的子数组 , 并输出该最大平均数 。
滑动窗口:
窗口移动时 , 窗口内的和等于sum加上新加进来的值 , 减去出去的值
完整刷题笔记帮大家整理好了 , 需要的同学转发本文+关注+私信【0406】即可获取
- 旷视发布“机器人”新品,AI算法已进入大规模仓储物流环节
- 算法|开启120HZ,你的4K电视还是4K吗?
- 算法|Web前端:要避免的常见 AngularJS 错误
- aito|体验一周后,我发现了AITO上这些实用的小功能
- 千方科技|2022年,网站优化运营之“算法”篇
- 小米科技|小米11ultra为何最近被刷爆数码圈?有人说出了答案,原因很真实
- 美团|人终究不是一种算法
- 算法|为了让你不关算法推荐,抖音QQ支付宝们真的拼
- 3倍工资挖人,应届生拿百万年薪,造车新势力为了抢“算法人”拼了
- 华为|先进工艺获取困难 华为优化芯片算法:功耗大降88%