1351.统计有序矩阵中的负数
每行二分
class Solution {public int countNegatives(int[][] grid) {int row=grid.length;int col=grid[0].length;int cot=0;for(int i=0;i<row;i++){if(grid[i][col-1]>=0) continue;if(grid[i][0]<0){cot+=col;continue;}//两个小剪枝//二分要找到每行第一个>=0的数int left=0;int right=col-1;while(left<=right){int mid=left+(right-left)/2;if(grid[i][mid]<0){if(mid>=1&&grid[i][mid-1]>=0){cot+=col-mid;break; }if(mid>=1&&grid[i][mid-1]<0){right=mid-1;}}else{left=mid+1;}}}return cot;}
}
看题解受启发,可以每次二分的时候,右边界可以参考上一行的mid。
如下面. 第一行的-5(mid),它后面的数全是负数,那么下一行的也是。
8下面的正负未知。此位置不能确定为二分的右边界
10 9 8 -5 -9
9 8 -5 -9 -10
class Solution {public int countNegatives(int[][] grid) {int row=grid.length;int col=grid[0].length;int cot=0;int pox=col-1;for(int i=0;i<row;i++){if(grid[i][col-1]>=0) continue;if(grid[i][0]<0){cot+=col;continue;}int left=0;int right=pox;while(left<=right){int mid=left+(right-left)/2;if(grid[i][mid]<0){if(mid>=1&&grid[i][mid-1]>=0){cot+=col-mid;pox=mid;break; }if(mid>=1&&grid[i][mid-1]<0){right=mid-1;}}else{left=mid+1;}}}return cot;}
}
1351.统计有序矩阵中的负数相关推荐
- leetcode1351. 统计有序矩阵中的负数(二分查找)
给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列. 请你统计并返回 grid 中 负数 的数目. 示例 1: 输入:grid = [[4,3,2,-1],[3 ...
- [leetcode]5340. 统计有序矩阵中的负数
class Solution {public:int countNegatives(vector<vector<int>>& grid) {int res = 0;fo ...
- 378. 有序矩阵中第K小的元素
2020-05-25 1.题目描述 有序矩阵中第K小的元素 2.题解 1.优先队列 2.使用二分查找 class Solution { public:int kthSmallest(vector< ...
- python n个list如何组成矩阵_有序矩阵中第K小的元素amp;x的平方根(二分法篇)
69. x的平方根 题目描述: 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去. 示例1: ...
- leetcode378. 有序矩阵中第 K 小的元素
378. 有序矩阵中第 K 小的元素 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素. 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 ...
- [leetcode]378. 有序矩阵中第 K 小的元素
378. 有序矩阵中第 K 小的元素 题目链接 思路分析 代码实现 题目链接 378. 有序矩阵中第 K 小的元素 思路分析 题目中又一次提到了有序,就能够猜想能够使用二分法 那么如果要使用二分的话, ...
- 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...
- Leetcode刷题100天—378. 有序矩阵中第 K 小的元素(优先队列)—day16
前言: 作者:神的孩子在歌唱 大家好,我叫运智 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素. 请注意,它是 排序后 的第 k 小元素,而不是 ...
- leetcode378. 有序矩阵中第K小的元素(Python3)
文章目录 leetcode378. 有序矩阵中第K小的元素 方法一:直接排序 思路: 代码: 结果: 方法二:二分查找 思路: 代码: 结果: leetcode378. 有序矩阵中第K小的元素 给定一 ...
最新文章
- python tensorflow教程推荐_TensorFlow教程和文章推荐大全 -DZone AI
- python面向对象编程(封装与继承)
- leetcode 141. Linked List Cycle
- http 使用curl发起https请求
- 安卓最好的浏览器_Wow!来自印度的操作系统,Prime OS X86安卓体验
- 对理想团队模式的构想以及对软件流程的理解
- 连接动态链接库时找不到链接库的解决办法
- 手机屏幕镜像翻转软件_iPhone拍出来的视频倒过来了怎么办?这个系统自带工具全搞定,它还有更多神奇绝技!...
- 我的世界1.16.1java模组怎么加,我的世界1.16(minecraft1.16)全新模组推荐
- 硬件基础:嵌入式软件可靠性设计要注意的问题
- 百度地图如何准确定位?注意surroundingPois
- 帝国时代2决定版多人游戏服务器维护,帝国时代2决定版怎么在多人模式中玩战役 多人战役方法一览_游侠网...
- 关于wordcloud安装
- ZbxTable 2.1 重磅发布!周四直播分享
- node 项目打包工具ncc
- 【后端检测-绕过】文件头检测绕过、二次渲染绕过
- 深入浅出工控机加固的那点事
- HTML期末作业~个人信息展示网站响应式模板(HTML+CSS+JavaScript)
- (信贷风控七)申请评分卡模型Python实现(图文+代码实现)
- 行转列逗号隔开逗号隔开列转行