腾讯精选50题—Day7题目54,59,61

搜索专题 搜索问题,各种搜索问题的算法分析以及思路引导,以及剪枝 立即下载

腾讯精选50题—Day7题目54,59,61

  今天是刷题的第七天,元气满满的周一~~

1. 题目54 螺旋矩阵

(1) 题目描述

在这里插入图片描述
在这里插入图片描述

(2) 思路

  螺旋矩阵的问题比较简单,只要定好四个位置即可,lx、rx、by、ty,按照绿色箭头顺序遍历,在遍历的过程中保证lx不能大于rx同时by不能大于ty。
在这里插入图片描述

(3) 题解

class Solution {
public:
    vector<int> spiralOrder(vector<vector<int>>& matrix) {

        int lx = 0;
        int rx = matrix[0].size() - 1;
        int by = 0;
        int ty = matrix.size() - 1;
        
        int number = matrix[0].size() * matrix.size();
        vector<int> result;

        while(true)
        {
            if (lx > rx || by > ty)
                break;
            for (int i = lx; i <= rx; i++)
                result.push_back(matrix[by][i]);
            by++;
            if (lx > rx || by > ty)
                break;
            for (int j = by; j <= ty; j++)
                result.push_back(matrix[j][rx]);
            rx--;
            if (lx > rx || by > ty)
                break;
            for (int k = rx; k >= lx; k--)
                result.push_back(matrix[ty][k]);
            ty--;
            if (lx > rx || by > ty)
                break;
            for (int t = ty; t >= by; t--)
                result.push_back(matrix[t][lx]);
            lx++;

        }
        return result;
    }
};

结果:
在这里插入图片描述
时间复杂度: O ( n 2 ) O(n^2) O(n2)
空间复杂度: O ( n 2 ) O(n^2) O(n2)

2. 题目59 螺旋矩阵II

(1) 题目描述

在这里插入图片描述

(2) 思路

  思路和54题类型,先声明一个空的矩阵,然后填数字。

(3) 题解

class Solution {
public:
    vector<vector<int>> generateMatrix(int n) {

        vector<vector<int>> result(n, vector<int>(n, 0));

        int lx = 0;
        int rx = n - 1;
        int by = 0;
        int ty = n - 1;

        int num = 1;
        while (true)
        {
            if (lx > rx || by > ty)
                break;
            for (int i = lx; i <= rx; i++)
            {
                result[by][i] = num;
                num++;
            }
            by++;
            if (lx > rx || by > ty)
                break;
            for (int j = by; j <= ty; j++)
            {
                result[j][rx] = num;
                num++;
            }
            rx--;
            if (lx > rx || by > ty)
                break;
            for (int k = rx; k >= lx; k--)
            {
                result[ty][k] = num;
                num++;
            }
            ty--;
            if (lx > rx || by > ty)
                break;
            for (int t = ty; t >= by; t--)
            {
                result[t][lx] = num;
                num++;
            }
            lx++;
        }

        return result;
    }
};

结果:
在这里插入图片描述
时间复杂度: O ( n 2 ) O(n^2) O(n2)
空间复杂度: O ( n 2 ) O(n^2) O(n2)

3. 题目61 旋转链表

(1) 题目描述

在这里插入图片描述

(2) 思路

  先成环,后断链。

(3) 题解

class Solution {
public:
    ListNode* rotateRight(ListNode* head, int k) {

        if (k == 0)
            return head;

        ListNode* p = head;
        ListNode* tail = NULL;
        int len = 0;
        while (p != NULL)
        {
            if (p->next == NULL)
                tail = p;

            p = p->next;
            len++;
            
        }
        if (len == 0) return NULL;
        int new_k = k % len;

        tail->next = head;
        p = tail;

        int move_step = len - new_k;

        while (move_step > 0)
        {
            p = p->next;
            move_step--;
        }
        ListNode* result = p->next;
        p->next = NULL;

        return result;
    }
};

结果:
在这里插入图片描述

时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( 1 ) O(1) O(1)

c++试题库大全 初学试题,很好的试题,好好练习一定可以的,祝你成功。 立即下载

相关推荐

从零到一:银河麒麟OS下C#跨平台开发的避坑指南

本文详细介绍了在银河麒麟OS下进行C#跨平台开发的完整流程,从开发环境搭建到避坑指南。针对国产操作系统特性,提供了.NET Core安装、开发工具链配置、桌面应用开发及部署优化的实战经验,特别关注ARM架构适配和性能调优,帮助开发者高效应对国产化开发挑战。

weixin_29221753的博客 863

C++题目索引

类 标号 标题 – – – – – –

清风微醺的博客 671

写给音响工程师的科普文章(二)——从模电角度去了解调音台话放

    上一篇讲到调音台第一级放大电路为差分放大器,关于差分放大器的基础知识可以参考以下资料:https://wenku.baidu.com/view/e6a46aaa2af90242a995e537 在教材中的差分放大器基本形式是这样子的,在实际电路中把RE电阻换成两个2倍RE,于是变成这样 然后我们现在来对比调音台中的差分放大器和教材中的有什么区别,我就拿yamaha 01V 96来说...

huanghaoAudio的博客 7704

C++ 搜索

程序设计实践课笔记。 搜索算法是利用计算机的高性能来有目的地穷举一个问题的部分或所有的可能情况,从而求出问题的解的一种方法,有一定的方向性和目标性。 状态(state)是对问题在某一时刻进展情况的数学描述,或者是数学抽象。 每一个状态都会是答案的一个“可能的”解。状态的转移就是问题从一个状态转移到另一个状态,这样就可以进行搜索的一步步延伸,最后要得到的解也是其中的一个状态。 广度优先搜索(BFS...

twentyonepilots的博客 7163

深入解析车载以太网DoIP诊断:Wireshark实战TCP/UDS报文分析

本文深入解析车载以太网DoIP诊断,重点介绍如何利用Wireshark进行TCP/UDS报文实战分析。文章详细讲解了从以太网帧、IP帧、TCP段到DoIP协议及UDS服务的逐层拆解方法,并提供了使用Wireshark定位通信故障(如乱序、丢包、重传)的实用技巧,帮助工程师高效排查车载诊断网络问题。

c2d3e4f的博客 674

小土堆学习笔记1:Dataset类代码实践

上一页中反复提到“类”,这究竟是什么东西?按我的理解(肯定不准确也不正式),class类就是某一个东西的共性,而且是等待被确认的共性。比如每台手机都有它自己的品牌、框架、价格等等属性,class类正是这些尚不确定的属性;而一旦确认了这些属性,就能够确认这到底是一台什么型号什么状态的手机,在确认了全部属性后就知道,这是一台Apple 16 Pro Max。抽象的不确定的共性就是类,具体的确定的个性就是示例。这个共性可以被用于多个编程目的,只不过某一个具体的编程行为还有它自己的独特性。

qq_40525602的博客 1626

C/C++题库整理(一)

2017年10月1日牛客网 题目一: /* 小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。 你能帮帮小Q吗? 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000. 输出描述: 对于每组数据,输出移位后的字符串。 输入例子1: AkleBiCeilD 输出例子1: kleieilA

Sonihr的犀牛园 3万+

别再手动下单了!用Python+EasyTrader+同花顺,5分钟搞定你的第一个自动化交易机器人

本文详细介绍了如何使用Python和EasyTrader结合同花顺客户端快速构建自动化交易机器人。从环境配置到实战脚本编写,涵盖自动打新、条件单、跟单策略等核心功能,并分享性能优化与风险控制技巧,帮助投资者高效实现自动化交易。

weixin_30381317的博客 398

腾讯精选50题—Day2题目7,8,9

腾讯精选50题—Day2题目7,8,9 今天是打卡的第二天,元气满满的冲鸭~~~ 1. 题目7 整数反转 (1)题目描述 (2)题目思路 (3)题解

Fox_Alex的博客 263

【C#程序员入门AI】向量数据库入门:C#集成Chroma/Pinecone,实现AI知识库检索(RAG基础)

向量存语义,检索补知识!向量数据库:解决AI知识库存储和语义检索问题,让AI有据可查C#集成:Chroma轻量本地练手,Pinecone企业云端落地,一套逻辑无缝切换RAG闭环:检索+大模型,让AI回答精准不瞎编,是AI落地的必经之路咱C#程序员有.NET生态加持,集成向量数据库比Python更简洁、更稳定,不管是个人做智能助手,还是企业做知识库,这套技术栈都能直接落地,2026年必学技能!

人工智能AI技术 1003

北斗导航 | ChatGPT之RTK、RTD、ARAIM算法原理及程序代码(ChatGPT看你怎么回答,附部分代码)

ChatGPT之RTK、RTD、ARAIM算法原理及程序代码

尘世冰封的专栏 3679

腾讯精选50题—Day1题目2,4,5

腾讯精选50题—Day1题目2,4,5 今天是刷腾讯精选50题的第一天,加油加油加油~~~ 1. 问题2 (1)题目描述: You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbe.

Fox_Alex的博客 406

Python 爬虫实战:爬取万方数据文献信息

本文介绍了基于Python爬虫技术合规获取万方数据文献信息的方法。通过分析万方数据的请求机制与反爬策略,采用requests库结合Session维持合法会话,实现了文献标题、摘要、作者等核心元数据的提取。文章详细讲解了Token验证、动态请求构造、JSON数据解析等关键技术,并提供了完整可运行代码。同时强调严格遵守《万方数据知识服务平台用户协议》,控制请求频率,仅限学术研究使用。该方案为万方数据文献信息获取提供了标准化解决方案,支持数据清洗、结构化存储及后续分析应用。

2503_91057718的博客 2138

腾讯精选50题—Day3题目11,14,15

腾讯精选50题—Day3题目11,14,15 打卡的第三天,忙碌而充实,用一句话来鼓励自己~The measure of success is how we cope with disappointment. 1. 题目11 盛水最多的容器 (1)题目描述 Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are d.

Fox_Alex的博客 374

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

腾讯精选50题—Day14题目 215,217,230

腾讯精选50题—Day14题目 215,217,230   第十四天~ 目录腾讯精选50题—Day14题目 215,217,2301. 题目 215 寻找第K大的数 经典面试题(1) 题目描述(2) 思路(3) 题解2. 题目 217 存在重复元素(1) 题目描述(2) 思路(3) 题解3. 题目(1) 题目描述(2) 思路(3) 题解参考 1. 题目 215 寻找第K大的数 经典面试题 (1) 题目描述 (2) 思路    利用快排中的partition+双指针。 (3) 题解 class So

Fox_Alex的博客 254

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

腾讯LeetCode精选50题

腾讯LeetCode精选50题 快捷入口:https://leetcode-cn.com/problemset/50/ 题名 题解 出现频率 2 两数相加 中等 4 寻找两个有序数组的中位数 困难 5 最长回文子串 中等 7 整数反转 简单 8 字符串转换整数 (atoi) 中等 9 回文数 简单 11 盛最多水的容器...

QAQterrible的博客 627

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

腾讯精选50题—Day5题目23,26,33

腾讯精选50题—Day5题目23,26,33 送你一朵小红花~希望自己乐观而坚强,自信而勇敢~ 目录 腾讯精选50题—Day5题目23,26,33 1. 题目23 合并k个有序链表 (1)题目描述 困难 (2)思路 (3)题解 2. 题目26 空间复杂度删除有序数组的重复元素 (1)题目描述 (2)思路 (3)题解 3. 题目33 旋转有序数组的查找 (1)题目描述 (2)思路 (3)题解 1. 题目23 合并k个有序链表 (1)题目描述 困难 (2)思路 根.

Fox_Alex的博客 239

腾讯精选50题—Day15题目 231,235,236

腾讯精选50题—Day15题目 231,235,236   第十五天~ 目录腾讯精选50题—Day15题目 231,235,2361. 题目231 2的幂(1) 题目描述(2) 思路(3) 题解2. 题目 235 二叉搜索树的最近公共祖先(1) 题目描述(2) 思路(3) 题解3. 题目236 二叉树的最近公共祖先(1) 题目描述(2) 思路(3) 题解参考 1. 题目231 2的幂 (1) 题目描述 (2) 思路    笨方法,循环。 (3) 题解 class Solution { public:

Fox_Alex的博客 280

腾讯精选50题—Day17题目 344,557

腾讯精选50题—Day17题目 344,557   第十七天,今天是组队打卡的最后一天,新的起点,起航~ 芜湖~ 目录腾讯精选50题—Day17题目 344,5571. 题目344 反转字符串(1) 题目描述(2) 思路(3) 题解2. 题目557 反转字符串中的单词 III(1) 题目描述(2) 思路(3) 题解 1. 题目344 反转字符串 (1) 题目描述 (2) 思路    折半替换即可。 (3) 题解 class Solution { public: void reverseStri

Fox_Alex的博客 222

腾讯精选50题—Day13题目160,169,206

腾讯精选50题—Day13题目160,169,206   第十三天~ 目录腾讯精选50题—Day13题目160,169,2061. 题目160 相交链表(1) 题目描述(2) 思路(3) 题解2. 题目169 多数元素(1) 题目描述(2) 思路(3) 题解3. 题目206 反转链表(1) 题目描述(2) 思路(3) 题解 1. 题目160 相交链表 (1) 题目描述 (2) 思路    公共部分长度为p,去除公共部分后链表A长度为m,链表B长度为n,那么让指针分别遍历一遍链表A和B,在遍历过程中

Fox_Alex的博客 331

腾讯精选50题—Day6题目43,46,53

腾讯精选50题—Day6题目43,46,53 今天是刷题的第六天...周天阳光明媚,刷题快乐~~ 1. 题目43 字符串相乘 (1) 题目描述 (2) 思路 这个进位用p1表示(因为是倒着的,p1和p2让我想了很久.....),还需要再理解... (3) 题解 class Solution { public: string multiply(string num1, string num2) { int m = num1.size(); int n = num2.size(); st

Fox_Alex的博客 221

腾讯精选50题—Day16题目 237,238,292

腾讯精选50题—Day16题目 227   第十六天~ 目录腾讯精选50题—Day16题目 2271. 题目237 删除链表中的节点(1) 题目描述(2) 思路(3) 题解2. 题目(1) 题目描述(2) 思路(3) 题解3. 题目(1) 题目描述(2) 思路(3) 题解参考 1. 题目237 删除链表中的节点 (1) 题目描述 (2) 思路    因为没有告诉链表头,所以直接复制+删除即可。 (3) 题解 class Solution { public: void deleteNo

Fox_Alex的博客 268

腾讯精选50题—Day8题目62,70,78

腾讯精选50题—Day8题目62,70,78   今天是刷题的第八天,冲鸭~~ 目录腾讯精选50题—Day8题目62,70,781. 题目62 不同路径(1) 题目描述(2) 思路(3) 题解2. 题目70 爬楼梯(1) 题目描述(2) 思路(3) 题解3. 题目78 子集(1) 题目描述(2) 思路(3) 题解 1. 题目62 不同路径 (1) 题目描述 (2) 思路   解法1:动态规划;   解法2:组合公式,机器人从起始点到达终止点一共有两种操作——向下和向右,迷宫为m*n,那么向下的操作一

Fox_Alex的博客 411

腾讯精选50题—Day11题目136,141,142

腾讯精选50题—Day11题目136   第十一天~ 目录腾讯精选50题—Day11题目1361. 题目136 只出现一次的数字(1) 题目描述(2) 思路(3) 题解2. 题目(1) 题目描述(2) 思路(3) 题解3. 题目124 二叉树中的最大路径和(1) 题目描述(2) 思路(3) 题解参考 1. 题目136 只出现一次的数字 (1) 题目描述 (2) 思路   给定的序列中只有 (3) 题解 class Solution { public: int singleNumber(vect

Fox_Alex的博客 741

腾讯精选50题—Day4题目16,20,21

腾讯精选50题—Day4题目16,20,21 打卡的第四天,冲鸭~~~ 目录 腾讯精选50题—Day4题目16,20,21 1. 题目16 (1)题目描述 (2)思路 (3)题解 2. 题目20 括号匹配问题 (1)题目描述 (2)思路 (3)题解 3. 题目21 合并两个有序链表 (1)题目描述 (2)思路 (3)题解 1. 题目16 (1)题目描述 (2)思路 双指针法~ (3)题解 有个陷阱!result的初始化为INT_MAX会报错......这个时..

Fox_Alex的博客 201

腾讯精选50题—Day9题目88,89,104

腾讯精选50题—Day9题目88,89,104   刷题的第九天~~~一定可以的! 目录腾讯精选50题—Day9题目88,89,1041. 题目88 合并两个有序数组(1) 题目描述(2) 思路(3) 题解2. 题目89 格雷编码(1) 题目描述(2) 思路(3) 题解3. 题目104 二叉树深度(1) 题目描述(2) 思路(3) 题解 1. 题目88 合并两个有序数组 (1) 题目描述 (2) 思路   因为vector1长度完全可以放得下,那么直接从vector1的m-1位置和vector2的n-

Fox_Alex的博客 196
上一篇: 腾讯精选50题—Day6题目43,46,53
下一篇: 腾讯精选50题—Day8题目62,70,78
Fox_Alex
博客等级 码龄10年 47粉丝 57原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值