剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找

这篇具有很好参考价值的文章主要介绍了剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找,矩阵,算法,线性代数

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) { 
        if (matrix.size() == 0 || matrix[0].size() == 0return {};//必须要写到最前面,因为right和bottom-1就是负数了
        vector<int> result;
        int left=0,right=matrix[0].size()-1;//从一行的第一个lleft到最后一个right
        int top=0,bottom=matrix.size()-1;//从一列的最上面到最下面
        int i=0,j=0;
        while(1)
        {
            for(int i=left;i<=right;i++)
            { 
            result.push_back(matrix[top][i]);
            }
            top++;
            if(top>bottom) break;
            for(int j=top;j<=bottom;j++)
            {
                result.push_back(matrix[j][right]);
            }
            right--;
            if(left>right) break;
            for(int i=right;i>=left;i--)
            {
                result.push_back(matrix[bottom][i]);
            }
            bottom--;
            if(top>bottom) break;
            for(int j=bottom;j>=top;j--)
            {
                result.push_back(matrix[j][left]);
            }
            left++;
            if(left>right) break;
        }
        return result;


    }
};

回字形
剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找,矩阵,算法,线性代数
思路:pushed数组里遍历进栈,遍历时候,先进栈,再判断栈顶是否和poped序列的当前指向的是否一样,一样就pop,直到不一样为止,然后继续遍历进栈。然后再判断栈里面剩余的和poped序列指向的一不一样,一样,就把栈里面的pop,直到栈为空,只要有一个不一样,就return 0,最后栈为空,poped序列也遍历完了,flag=1.
剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找,矩阵,算法,线性代数
这题用的哈希集合,想着一会就写出来了,但是,算了先贴出脑残代码,尼玛哈希集合的count值只能是找不到(0),找得到(1),没有其他的取值!!!!!!我说怎么给我return 0呢!!我真是个大蠢货

class Solution {
public:
    int findRepeatNumber(vector<int>& nums) {
        unordered_set<int> hs;
        for(int i=0;i<nums.size();i++)
        {
            hs.emplace(nums[i]);//比emplace更高效率的插入
            if(hs.count(nums[i])>1) return nums[i];//count只能是0,1
        }
        return 0;
    }
};

稍稍改一下就行了

class Solution {
public:
    int findRepeatNumber(vector<int>& nums) {
        unordered_set<int> hs;
        for(int i=0;i<nums.size();i++)
        {
            if(hs.count(nums[i])==1) return nums[i];
            hs.emplace(nums[i]);//比emplace更高效率的插入
        }
        return 0;
    }
};

这边记录一下为什么empalce比insert更高效,emplace是调用拷贝构造函数(一气呵成),构造插入元素的时候已经赋值;inset是先构造一个元素,再调用重载运算符号,进行赋值
当然push_back也是属于先构造元素,然后调用重载运算符进行赋值,不太行
剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找,矩阵,算法,线性代数
哈希表

class Solution {
public:
    int search(vector<int>& nums, int target) {
        unordered_map<int,int>mp;
        for(int i=0;i<nums.size();i++)
        {
            mp[nums[i]]++;
        }
        return mp[target];
    }
};

剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找,矩阵,算法,线性代数

class Solution {
public:
    int missingNumber(vector<int>& nums) {
        int val=nums[0];
        int res=0;
        for(int i=0;i<nums.size();i++)
        {
            if(nums[i]!=val++) return val-1;
            if(i==nums.size()-1)
            {
                if(nums[0]==1) return 0;//特殊情况 只有一个元素【1】的时候,缺的是0,不是2
                res=nums[i]+1;
            }
        }
        return res;
    }
};

剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找,矩阵,算法,线性代数文章来源地址https://www.toymoban.com/news/detail-593217.html

到了这里,关于剑指29.顺时针打印矩阵 31 栈的压入,弹出序列 03 数组中的重复数字 53缺失的数字 04二维数组中的查找的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • LeetCode——栈的压入、弹出序列

    这里我用下面的例子子来讲解一下 模拟栈的实现 。 例子1:pushed = [1,2,3,4,5] popped = [4,5,3,2,1] 思路:第一步:我们先创建一个栈,然后将pushed的数据压进去 第二步:判断! 当压入栈的数据和popped第一个数据一样的时候,我们就出数据。ps:这时可以用一个posi来记录要比较的数

    2024年02月10日
    浏览(30)
  • 剑指 Offer 29. 顺时针打印矩阵

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 限制: 0 = matrix.length = 100 0 = matrix[i].length = 100 思路:首先自己

    2024年02月15日
    浏览(46)
  • 剑指Offer-29-顺时针打印矩阵

    剑指Offer-29题 题目描述:顺时针打印矩阵 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 **题解思路:**使用 模拟 的方法 定义四个边界变量表示当前要遍历的边界:上(top)、下(bottom)、左(left)、右(right),条件结束的标志是[上边界=下边界 且 左边界=有边

    2024年02月13日
    浏览(90)
  • 【LeetCode-简单】剑指 Offer 29. 顺时针打印矩阵(详解)

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 示例 2: 剑指 Offer 29. 顺时针打印矩阵 - 力扣(LeetCode) 与 力扣54题相同 54. 螺旋矩阵 二维数组顺时针从外往里走 可以想象成:按照 右-》下-》左 -》上 的顺序一直走,走过的地方不要走即可。

    2024年02月09日
    浏览(51)
  • 【LeetCode-中等】剑指 Offer 29. 顺时针打印矩阵(详解)

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 示例 2: 剑指 Offer 29. 顺时针打印矩阵 - 力扣(LeetCode) 与 力扣54题相同 54. 螺旋矩阵 二维数组顺时针从外往里走 可以想象成:按照 右-》下-》左 -》上 的顺序一直走,走过的地方不要走即可。

    2024年02月13日
    浏览(43)
  • 剑指 Offer 29. 顺时针打印矩阵 / LeetCode 54. 螺旋矩阵(模拟)

    链接:剑指 Offer 29. 顺时针打印矩阵;LeetCode 54. 螺旋矩阵 难度:中等 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 示例 2: 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出:

    2024年02月15日
    浏览(40)
  • Leetcode-每日一题【剑指 Offer 29. 顺时针打印矩阵】

    输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1: 输入: matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出: [1,2,3,6,9,8,7,4,5] 示例 2: 输入: matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 输出: [1,2,3,4,8,12,11,10,9,5,6,7] 限制: 0 = matrix.length = 100 0 = matrix[i].length = 100 1.题目要求

    2024年02月13日
    浏览(56)
  • 剑指offer(C++)-JZ29:顺时针打印矩阵(算法-模拟)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 则依次打印出数字 数据范围: 0 = matrix.length = 100 0 = ma

    2024年02月10日
    浏览(41)
  • 数据结构学习 jz29 顺时针打印矩阵

    :模拟 简单题做了超过40分钟 调了很久 不好  我自己做的。 xy_t: 记录xy的方向,往右走,往下走,往左走,往上走 t控制方向 isx:         true:轮到x方向动         false:轮到y方向动 n_res m_res:         n_res:还没走过的行数(x方向)         m_res:还没走

    2024年01月17日
    浏览(33)
  • 【算法】顺时针打印矩阵(图文详解,代码详细注释

    目录 题目 代码如下: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则打印出数字:1 2 3 4 8 12 16 15 14 13 9 5 6 7 11 10 这一道题乍一看,没有包含任何复杂的数据结构和高级算法,似乎蛮简单的。但

    2024年04月26日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包