目录
1、打印矩阵
- 转圈打印矩阵
- 将正方形矩阵顺时针转动90度
- “之”字形打印矩阵
2、数组的遍历查找
- 找到无序数组中最小的k个数(topk)
- 一个数组,所有数都出现了两次(三次),只有一个数出现了一次,返回这个数,
- 一个1-n的数,少了一个,找出来
- 在数组中找到出现次数大于N/K的数【删除不同的数】
- 在行列都排好序的矩阵中找数
- 奇数下标都是奇数或偶数下标都是偶数【even、odd变量变量】
- 在数组中找到一个局部最小的位置
- 边界都是1的最大正方形大小【遍历+动态规划】
- 不包含本位置值的累乘数组【左右额外空间遍历】
- 求最短通路值【宽度优先】
- 数组中未出现的最小正整数【左右变量遍历】
- 在一个有序数组中查找一个数,怎么最快【二分查找】
- n个[0,n)的数,求每个数出现次数(不能开辟额外空间)
- 数组n个正整数,每个数值不超过n-1,有一个重复的数,找出那个重复的数
- 数组去重
3、数组的删除
- 排好序的数组,里面有重复的元素删除重复元素,只保留其中的一部分
- 插入和删除用链表还是数组
4、数组的排序
- 需要排序的最短子数组长度【找到比当前最小值左边大的数和比最大值右边大的数的索引】
- 最长的可整合子数组的长度
- 数组中未出现的最小正整数【左右变量遍历】
- 自然数数组的排序
- 打印N个数组整体最大的Top K【3种解法】【堆排序。时间O(n+k*logn),建堆要O(n),每次找出最大的要O(logn)】
- 两个排好序的数组,求两个数组第k大的数【二分?】
- 多个有序数组合并
- 数组的partition调整【快排思想】
- 两个有序数组,求其中位数,然后改进时间复杂度
- 数组的全排列
- 假设数组排序后的位次和排序前的位次绝对差值小于K,有什么比快排好的算法
- 找出一个旋转数组中的最小值
5、数组求和、求积
- 子数组的最大累加和问题【设置当前和变量,小于0置0】
- 子矩阵的最大累加和问题
- 不重复打印排序数组中相加和为给定值的所有二元组和三元组【左右变量遍历】
- 未排序正整数数组中累加和等于给定值的最长子数组长度【左右变量遍历】
- 未排序数组中累加和为给定值的最长子数组系列问题【arr[i……j】=s[j]-s[i],采用字典存储和s】
- 未排序数组中累加和小于或等于给定值的最长子数组长度【列表存s,二分法查找列表】
- 计算数组的小和
- 数组中子数组的最大累乘积 【动态规划】
- 求一个数组的连续区间,使得和最大,二维矩阵呢?最优时间复杂度?
- 给数组找到加起来是100的一组数,(要求不改动原数组),若找出1000个连续的数,使其和为10万呢?若不限制个数,和为10万呢?
6、数组中的动态规划
- 求数字数组中最长的斐波那契数列长度
原文地址:https://www.cnblogs.com/Lee-yl/p/10463720.html
时间: 2024-11-08 14:56:14