旋转数组的最小数字、二维数组中的查找、调整数组顺序使奇数位于偶数前面
创始人
2024-02-08 04:38:34
0

文章目录

  • 1、 旋转数组的最小数字
  • 2、调整数组顺序使奇数位于偶数前面
  • 3、二维数组中的查找

1、 旋转数组的最小数字

本题考点:核心考点:数组理解,二分查找,临界条件 牛客链接

题目描述:
有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。

数据范围:1≤n≤10000,数组中任意元素的值:100000≤val≤10000
要求:空间复杂度:O(1) ,时间复杂度:O(logn)

图解:

代码:

class Solution {
public:int minNumberInRotateArray(vector rotateArray) {int left = 0, rigth = rotateArray.size() - 1;// 循环while (left < rigth) {// 找到数组的中点 mint m = (left + rigth) / 2;// m在左排序数组中,旋转点在 [m+1, j] 中if (rotateArray[m] > rotateArray[rigth]) left = m + 1;// m 在右排序数组中,旋转点在 [i, m]中else if (rotateArray[m] < rotateArray[rigth]) rigth = m;// 缩小范围继续判断else rigth--;}// 返回旋转点return rotateArray[rigth];}
};

2、调整数组顺序使奇数位于偶数前面

本题考点:数组操作,排序思想的扩展使用 牛客链接

题目描述:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

图解:

在这里插入图片描述
代码:

class Solution {
public:void reOrderArray(vector &array) {int place = 0; //奇数要插入的位置for(int i = 0; i < array.size(); i++){if(array[i] & 1){int temp = array[i];int j = i;while(j > place){array[j] = array[j - 1];j--;}array[place++] = temp;}}}
};

3、二维数组中的查找

本题考点:数组相关,特性观察,时间复杂度把握牛客链接

题目描述:
在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
在这里插入图片描述
数据范围:矩阵的长宽满足5000≤n,m≤500 , 矩阵中的值满足0≤val≤10^9
进阶:空间复杂度 O(1) ,时间复杂度 O(n+m)

图解:
在这里插入图片描述

代码:

class Solution {
public:bool Find(int target, vector > array) {int ROW = 0, COL = array[0].size() - 1;while(ROW < array.size() && COL >= 0){if(array[ROW][COL] > target){COL--;}else if(array[ROW][COL] < target){ROW++;}else{return true;}}return false;}
};

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...