公司网站建设开发济南兴田德润简介图片迷你主机做网站
2026/2/12 17:33:07 网站建设 项目流程
公司网站建设开发济南兴田德润简介图片,迷你主机做网站,深圳 网站 传播,工业设计公司发展方向给你一个 m * n 的矩阵 grid#xff0c;矩阵中的元素无论是按行还是按列#xff0c;都以非严格递减顺序排列。 请你统计并返回 grid 中 负数 的数目。示例 1#xff1a;输入#xff1a;grid [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]] 输出#xff1a;8 解释矩阵中的元素无论是按行还是按列都以非严格递减顺序排列。 请你统计并返回grid中负数的数目。示例 1输入grid [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]输出8解释矩阵中共有 8 个负数。示例 2输入grid [[3,2],[1,0]]输出0提示m grid.lengthn grid[i].length1 m, n 100-100 grid[i][j] 100进阶你可以设计一个时间复杂度为O(n m)的解决方案吗分析由于整个矩阵的行和列都是严格按照非递减顺序排列的可以按行顺序遍历整个矩阵找到第一个值为负的位置它和它的右边值均为负统计所有行即可得到答案。时间复杂度为 O(nm) 的方案即最多遍历一次行和一次列。由于整个矩阵的行和列都是严格非递减顺序排列可知一个点的值如果为负那么它的右边和下边的所有值均为负数。可以从矩阵的最右上方的点开始先向左找到第一个值为负且它的左边的数为非负接着向下一行继续向左查找直到找到左边没有数或者最下方一行为止。可以观察到上面的方案点的移动路线是从右上方向左下方前进最多移动的次数就是 nm 次。int countNegatives(int** grid, int gridSize, int* gridColSize) { int ngridSize,mgridColSize[0],ans0; int x0,ym-1; while(xny0) { ansm-1-y; while(y0grid[x][y]0) ans,y--; if(y-1)ans(n-x-1)*m; else x; } return ans; }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询