腾讯精选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++试题库大全 初学试题,很好的试题,好好练习一定可以的,祝你成功。 立即下载

相关推荐

OpenIddict实战:5步搞定.NET Core应用的OIDC单点登录集成

本文详细介绍了如何使用OpenIddict在.NET Core应用中快速实现OIDC单点登录集成。通过五个关键步骤,包括环境准备、数据库集成、客户端注册、令牌配置和多应用SSO集成,帮助开发者高效构建安全的企业级单点登录解决方案。

lambda的博客 727

C++题目索引

类 标号 标题 – – – – – –

清风微醺的博客 671

地磁场仿真与导航方案设计

地磁场仿真与导航方案设计 地磁场作为地球的固有资源,为航空、航天、航海提供了天然的坐标,可应用于航天器、航空飞行器和舰船等载体的定位、定向及姿态控制。本文依据地磁场的球谐模型,利用Matlab工具,设计了计算任意地点地磁场的程序,对仿真结果与实际数据进行对比分析;并选定一组卫星的数据,结合卫星的运动轨道,描绘90分钟内卫星处地磁总强度/矢量随轨道变化曲线,据此设计一种卫星地磁导航方案。 一、地磁场计算原理 1.1.球谐模型与球谐系数 地磁学的基本问题之一就是用数学表达式将地磁要素的地面分布表示成地理坐标的函

PRQKKK的博客 7408

C++ 搜索

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

twentyonepilots的博客 7163

CST--时域仿真的网格设置技巧

对于物理概念清晰的工程师而言,使用时域算法几乎能够解决所有电磁仿真问题,但是,掌握时域算法的仿真技巧比掌握频域的难度大,这恐怕也是很多仿真工程师更喜欢使用频域算法的原因,因此,对于时域算法的灵活应用更能考验你是否是一名合格的仿真工程师。

一只豌豆象的博客 6864

OnePlus救砖指南:线刷包与OTA全量包实战解析

本文详细解析了OnePlus手机救砖的两种核心方法:线刷包与OTA全量包。针对手机变砖的不同状况(如黑屏、能进Recovery等),文章提供了清晰的判断标准和对应的实战操作指南。重点阐述了线刷包作为终极救砖手段的底层原理与详细步骤,并对比了OTA全量包作为温和修复方案的使用场景与卡刷流程,旨在帮助用户安全、有效地恢复手机系统。

weixin_28312391的博客 1318

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

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

Sonihr的犀牛园 3万+

基于Dify1.9知识库流水线模板的思考——图像和表格数据处理

本文探讨了Dify1.9知识库流水线中LLM节点对文档图像/表格增强处理的优化方案。针对当前仅在内容后追加说明的简单做法,提出了结构化标注的改进方法:通过唯一ID和注释块标记图像/表格及其描述,确保内容可精准对齐。文章详细阐述了该方案的解析处理流程、数据结构化表示方法,以及在RAG检索和文档还原中的具体应用。关键经验包括:必须结构化标注非文本内容、LLM增强的必要性、语义向量化处理等。该方案解决了原始方法在内容重排、相似元素区分和检索精度等方面的问题。

roseey的专栏 1438

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

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

Fox_Alex的博客 263

射频指纹识别技术:原理、应用与深度学习实现

射频指纹识别(RFFI)是一种基于硬件特征的设备身份认证技术,通过分析无线设备发射信号中的独特硬件特征实现设备识别。其核心原理源于发射器硬件电路的非线性特性,如功率放大器的相位噪声和混频器的非线性失真,这些特征具有难以伪造的特点。在物联网和边缘计算场景中,RFFI技术展现出独特优势,尤其在智能家居和工业物联网中,能有效防止非法接入和设备伪造。深度学习方法的引入进一步提升了RFFI的性能,通过自动特征提取和端到端优化,显著提高了识别准确率。本文详细探讨了RFFI的技术原理、应用场景及实现方法,为相关领域的研究

weixin_30457465的博客 890

解锁激光加工密码:功率、频率、脉宽、占空比全解析

激光加工利用高能量激光束实现材料加工,具有无接触、高效率等特点。其核心参数包括功率(决定能量输出)、频率(控制脉冲重复)、脉宽(调节能量作用时间)和占空比(调控工作周期),这些参数相互协同影响加工效果。针对不同材料需采用差异化参数组合:金属材料需较高功率,塑料需低功率防过热,陶瓷需高频短脉宽减少热应力。实际操作中应通过小范围测试逐步优化参数,并注意解决烧损、切割不平整等常见问题。合理调节这些参数可实现高质量、高效率的激光加工。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 616

腾讯精选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

全网最详细教程,手把书教你使用YOLOv10训练自己的数据集和推理(附YOLOv10网络结构图)

YOLOv10,由清华大学多媒体智能组只开发,是一款亳秒级实时端到端目标检测的开源模型。该模型在保持性能不变的情况下,与YOLOv9相比,延迟减少了46%,参数减少了25%,非常适合需要快速检测物体的应用,如实时视频分析、自动驾驶和智能医疗等领域。这些改进使得YOLOv10在实时物体检测领域达到了新的技术水平。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

腾讯精选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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

腾讯精选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

精雕软件(JDpaint) 5.5 绿色版

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

腾讯LeetCode精选50题

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

QAQterrible的博客 627

Statistics and Machine Learning Toolbox

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

腾讯精选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、付费专栏及课程。

余额充值