2023-08-07力扣今日六题-不错题

这篇具有很好参考价值的文章主要介绍了2023-08-07力扣今日六题-不错题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

链接:

剑指 Offer 04. 二维数组中的查找

题意:

一个二维矩阵数组,在行上非递减,列上也非递减

解:

虽然在行列上非递减,但是整体并不有序,第一行存在大于第二行的数字,第一列存在大于第二列的数字,所有非递减只对单行单列有效

如果从左上角开始遍历,就会发现往下走和往右走都是数值变大,同时两种走法不存在优先级,只能做到优化的O(N^2)遍历

但是如果从右上角开始遍历,就能发现往下走和往左走分别是数值变大和数值变小,以此进行类似二分查找的过程

实际代码:

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target)
{
    int lgrow=matrix.size(); if(!lgrow) return false;
    int lgcol=matrix[0].size(); if(!lgcol) return false;
    
    PII start(lgrow-1,0);
    while(true)
    {
        if(matrix[start.first][start.second]==target) return true;
        if(matrix[start.first][start.second]<target)
        {
            start.second++;
            if(start.second>=lgcol) return false;
        }
        else
        {
            start.first--;
            if(start.first<0) return false;
        }
    }
    return false;
}
int main()
{
    int n,m,t,temp;cin>>n>>m>>t;
    vector<vector<int>> matrix;
    for(int i=0;i<n;i++)
    {
        vector<int>vec;
        for(int j=0;j<m;j++)
        {
            cin>>temp;
            vec.push_back(temp);
        }
        matrix.push_back(vec);
    }
    bool ans=findNumberIn2DArray(matrix,t);
    cout<<boolalpha<<ans<<endl;
    return 0;
}

限制:文章来源地址https://www.toymoban.com/news/detail-633379.html

  • 0 <= n <= 1000
  • 0 <= m <= 1000

到了这里,关于2023-08-07力扣今日六题-不错题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 2023-08-15力扣每日一题

    链接: 833. 字符串中的查找与替换 题意: n组操作,其中第i组: 检查 子字符串 sources[i] 是否出现在 原字符串 s 的索引 indices[i] 处。 如果没有出现, 什么也不做 。 如果出现,则用 targets[i] 替换 该子字符串。 所有替换操作必须 同时 发生,这意味着替换操作不应该影响彼此

    2024年02月12日
    浏览(40)
  • 2023-08-18力扣每日一题

    链接: 1388. 3n 块披萨 题意: 一个长度3n的环,选n次数字,每次选完以后相邻的数字会消失,求选取结果最大值 解: 这波是~~(ctrl)CV工程师了~~ 核心思想是选取 n个不相邻 的元素一定 合法 ,我推不出来,猜一猜倒是可以O.o DP[i][j] 表示从 [0,i] 中选取 j 个数字的最大值 初始

    2024年02月12日
    浏览(73)
  • 2023-08-29力扣每日一题

    链接: 823. 带因子的二叉树 题意: 用给的数字建二叉树,要求父节点是子节点的乘积 解: 乐了 1500ms+30MB //注释版120ms+18MB 实际代码: 限制: 1 = arr.length = 1000 2 = arr[i] = 109 arr 中的所有值 互不相同

    2024年02月11日
    浏览(28)
  • 2023-08-23力扣每日一题

    链接: 1782. 统计点对的数目 题意: 给n个点和m条无向边(可重复),q个查询 定义 edge[a] 为一个点是a的边数量,定义 ret[a,b] 是 edge[a]+edge[b]-(a与b的边) q个查询q个答案,第i次查询值 val[i] ,求所有的 1=ab=n 条件下有多少 ret[a,b]val[i] 解: TLE卡47了 看了评论区用空间换时间,

    2024年02月10日
    浏览(60)
  • 2023-08-26力扣每日一题

    链接: 228. 汇总区间 题意: 升序数组找连续区间 解: 简单遍历题 实际代码: 限制: 0 = nums.length = 20 -231 = nums[i] = 231 - 1 nums 中的所有值都 互不相同 nums 按升序排列

    2024年02月11日
    浏览(35)
  • 2023-08-24力扣每日一题

    链接: 1267. 统计参与通信的服务器 题意: 同行同列可以发生通信,求能发生通信的机器数量 解: 标记每行/每列的机器个数即可 实际代码: 限制: m == grid.length n == grid[i].length 1 = m = 250 1 = n = 250 grid[i][j] == 0 or 1

    2024年02月11日
    浏览(46)
  • 2023-09-08力扣每日一题

    链接: 2651. 计算列车到站时间 题意: 不看日期只看时间 解: ? 实际代码: 限制: 1 = arrivaltime 24 1 = delayedTime = 24

    2024年02月09日
    浏览(35)
  • 2023-08-25力扣每日一题

    链接: 1448. 统计二叉树中好节点的数目 题意: 判断根节点到每个节点X的过程中,如果没有值大于X,则该节点为好节点,求好节点数量 解: 由于求根节点到其他节点的路径,则使用dfs算法,更新路径中的最大值即可 实际代码: 限制: 二叉树中节点数目范围是 [1, 10^5] 。

    2024年02月10日
    浏览(69)
  • 2023-08-16力扣每日一题

    链接: 2682. 找出转圈游戏输家 题意: 环形1到n,从1开始,每次 移动 第i次*k ,当移动到出现过的序号时停下, 求没移动到的数字 解: 简单模拟题,我也以为有数学做法,可恶 实际代码: 限制: 1 = k = n = 50

    2024年02月12日
    浏览(38)
  • 2023-08-22力扣每日一题

    链接: 849. 到最近的人的最大距离 题意: 找一个离人最远的位置 解: 每个位置都用左边的人和右边的人更新一遍距离即可 实际代码: 限制: 2 = seats.length = 2 * 104 seats[i] 为 0 或 1 至少有一个 空座位 至少有一个 座位上有人

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包