心理网站建设策划书做一份网站动态图多少钱
news/
2025/9/24 14:14:37/
文章来源:
心理网站建设策划书,做一份网站动态图多少钱,搜索引擎优化岗位,衡水网站建设定制题目描述 搜索二维矩阵 给你一个满足下述两条属性的 m x n 整数矩阵#xff1a; 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target #xff0c;如果 target 在矩阵中#xff0c;返回 true #xff1b;否则 每行中的整数从左到右按非严格递增顺序排列。 每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target 如果 target 在矩阵中返回 true 否则返回 false 。 示例 1
输入matrix [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target 3 输出true 示例 2
输入matrix [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target 13 输出false 提示 m matrix.length n matrix[i].length 1 m, n 100 -104 matrix[i][j], target 104
思路
本题是二分搜索的变形常规的二分搜索是一个一维数组而本题是一个二维数组但是依然可以使用一维数组的思路关键点将二维坐标与一位坐标进行转化比如34的二维数组其实可以看成121的一维数组最中间的数mid是5(012-1) / 2 5对应二维数组行数15 / 41,列数55 % 4 1。
代码
class Solution {
public:bool searchMatrix(vectorvectorint matrix, int target) {int row matrix.size(); //行大小int col matrix[0].size(); //列大小int len row * col; //一维数组长度int left 0; //左右指针int right len - 1; //左闭右闭while (left right) { int mid_old (right - left) / 2 left; //一维数组的坐标int mid_x mid_old / col; // 计算二维数组的坐标int mid_y mid_old % col; if (matrix[mid_x][mid_y] target) {left mid_old 1;}else if (matrix[mid_x][mid_y] target) {right mid_old - 1;}else {return true;}}return false;}
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/915802.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!