数组和矩阵

目录

1、打印矩阵

  • 转圈打印矩阵
  • 将正方形矩阵顺时针转动90度
  • “之”字形打印矩阵

2、数组的遍历查找

  • 一个数组,所有数都出现了两次(三次),只有一个数出现了一次,返回这个数,
  • 一个1-n的数,少了一个,找出来
  • 在数组中找到出现次数大于N/K的数【删除不同的数】
  • 在行列都排好序的矩阵中找数
  • 奇数下标都是奇数或偶数下标都是偶数【even、odd变量变量】
  • 奇数在前,偶数在后,且原本位置不变,即稳定的。【插入】
  • 在数组中找到一个局部最小的位置
  • 边界都是1的最大正方形大小【遍历+动态规划】
  • 不包含本位置值的累乘数组【左右额外空间遍历】
  • 求最短通路值【宽度优先】
  • 数组中未出现的最小正整数【左右变量遍历】
  • 在一个有序数组中查找一个数,怎么最快【二分查找】
  • n个[0,n)的数,求每个数出现次数(不能开辟额外空间)
  • 数组n个正整数,每个数值不超过n-1,有一个重复的数,找出那个重复的数
  • 数组去重
  • 二维数组的转置题

 

3、数组的删除

  • 排好序的数组,里面有重复的元素删除重复元素,只保留其中的一部分
  • 插入和删除用链表还是数组

 

4、数组的排序

  • 需要排序的最短子数组长度【找到比当前最小值左边大的数和比最大值右边大的数的索引】
  • 最长的可整合子数组的长度
  • 数组中未出现的最小正整数【左右变量遍历】
  • 自然数数组的排序
  • 找到无序数组中最小的k个数(topk)
  • 打印N个数组整体最大的Top K【3种解法】【堆排序。时间O(n+k*logn),建堆要O(n),每次找出最大的要O(logn)】
  • 两个排好序的数组,求两个数组第k大的数【二分?】
  • 多个有序数组合并
  • 数组的partition调整【快排思想】
  • 两个有序数组,求其中位数,然后改进时间复杂度
  • 数组的全排列
  • 假设数组排序后的位次和排序前的位次绝对差值小于K,有什么比快排好的算法
  • 找出一个旋转数组中的最小值
  • 数组中的逆序对

5、数组求和、求积

  • 子数组的最大累加和问题【设置当前和变量,小于0置0】
  • 子矩阵的最大累加和问题
  • 查找满足条件的二维数组最大值和次大值之和
  • 不重复打印排序数组中相加和为给定值的所有二元组和三元组【左右变量遍历】【left+right和一直在增加】
  • 不重复打印排序数组中相加和为给定值的N元祖【递归】
  • 未排序正整数数组中累加和等于给定值的最长子数组长度【左右变量遍历】【[left:right]和一直在增加
  • 未排序数组中累加和为给定值的最长子数组系列问题【arr[i……j】=s[j]-s[i],采用字典存储和s】【[left:right]和可能减少】
  • 未排序数组中累加和小于或等于给定值的最长子数组长度【列表存s,二分法查找列表】
  • 计算数组的小和
  • 数组中子数组的最大累乘积 【动态规划】
  • 求一个数组的连续区间,使得和最大,二维矩阵呢?最优时间复杂度?
  • 给数组找到加起来是100的一组数,(要求不改动原数组),若找出1000个连续的数,使其和为10万呢?若不限制个数,和为10万呢?

6、数组中的动态规划

  • 求数字数组中最长的斐波那契数列长度

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Lee-yl/p/10463720.html

你可能感兴趣的:(数组和矩阵)