leetcode练习题

LeetCode编程练习题 1、743. 网络延迟时间 https://leetcode-cn.com/problems/network-delay-time/ 2、151. 翻转字符串里的单词 https://leetcode-cn.com/problems/reverse-words-in-a-string 3、681. 最近时刻 https://leetcode-cn.com/problems/next-closest-time 4、79. 单词搜索 https://leetcode-cn.com/problems/wor 阅读详情
#include <iostream>
#include <queue>
#include <vector>
using namespace std;
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
class Solution {
public:
    vector<int> levelOrder(TreeNode* root) {
        vector<int> result;
        if(root == nullptr) {
            return result;
        }
        queue<TreeNode*> que;
        int depth = 1;
        que.push(root);
        while (!que.empty()) {
            int count = que.size();
            int curLevelMax = INT_MIN;
            while(count > 0) {
                TreeNode* node = que.front();
                que.pop();
                curLevelMax = node->val > curLevelMax ? node->val : curLevelMax;
                if(node->left)
                    que.push(node->left);
                if(node->right)
                    que.push(node->right);
                count--;
            }
            result.push_back(curLevelMax);
        }
        return result;
    }

    vector<int> getIndex(TreeNode *root, vector<int> target) {
        // 先进行bfs
        vector<int> bfs_result = levelOrder(root);
        //打印bfs结果
        cout << "bfs result :" << endl;
        for(auto each_col : bfs_result) {
            cout << each_col << " " << endl;
        }

        // 然后依次比较
        vector<int> index_result;
        int cur_max_depth = -1;
        for(auto each_targe : target) {
            for(int i = bfs_result.size() - 1; i >= 0; i--) {
                if(bfs_result[i] > each_targe) {
                    cur_max_depth = i+1;
                    break;
                }
            }
            index_result.push_back(cur_max_depth);
            cur_max_depth = -1;
        }
        return index_result;
    }
};

int main() {
    std::cout << "Hello, World!" << std::endl;
    TreeNode root(3);
    TreeNode l1_1(4);
    TreeNode l1_2(11);
    TreeNode l2_1(3);
    TreeNode l2_2(8);
    TreeNode l3_1(7);
    TreeNode l3_2(5);
    root.left = &l1_1;
    root.right = &l1_2;
    l1_1.left = &l2_1;
    l1_2.right = &l2_2;
    l2_1.left = &l3_1;
    l2_2.right = &l3_2;
    Solution s1;
    vector<int> target = {6,2,9,7,9};
    vector<int> com_result =s1.getIndex(&root, target);
    cout <<  "result " << endl;
    for(auto each : com_result)
        cout << each << " ";
    return 0;
}

编程练习题集——leetcode 一、数组 1.1、简单 第1题 可被 5 整除的二进制前缀 给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。 返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。 示例1: 输入:[0,1,1] 输出:[true,false,false] 解释: 输入数字为 0, 01, 011;也就是十进制中的 0, 1, 3 。只有第一个数可 阅读详情

相关推荐

【数字电源/MATLAB+PLECS】如何进行 Buck 数字电源仿真(二)PLECS 搭建开环 Buck 功率级

本文介绍了如何在PLECS中搭建开环Buck功率级模型,验证数字电源设计的基本思路。重点内容包括: 明确开发顺序:先开环验证功率级,再闭环设计控制器 搭建关键组件:输入电源、PWM模块、MOSFET开关、续流二极管、LC滤波电路及负载 设置初始参数:24V输入、12V输出、200kHz开关频率、22μH电感、100μF电容 测量关键波形:MOSFET Vds验证开关动作、电感电流纹波和输出电压稳态值 提供完整仿真模型和GitHub资源,便于读者复现验证 文章强调通过开环测试先确保功率级正确性,为后续闭环控制

weixin_43234123的博客 1218

力扣(LeetCode)数据结构练习题

这里我们从题目可知我们要将nums2合并到nums1中,其中nums1的长度为m+n,那么如果我们从nums1的前面开始排序,我们就会因为排序而丢失前面nums1原来的值,所以我们就要从末尾开始排序,所以我们在代码中先定义出三个整形变量end1,end2,end,分别进行运算,进行while循环在两个数组都没比较结束到首元素时我们进行比较后放入nums1的末尾,当有一个nums1的比较元素已经到首元素时,如果nums2的元素还没比较完,那么我们就需要将nums2的元素全排在前面即可。

2302_81249757的博客 3149

【UE 反射】反射的原理是什么?如何使用机制?

静态类型检查确保了类型的早期一致性和高效的代码执行,但减少了灵活性。动态类型检查提供了更大的灵活性,但增加了运行时的开销和潜在的错误。反射作为一种动态特性,无论是在静态类型语言还是动态类型语言中,都提供了强大的运行时类型操作能力,但也伴随着性能和安全性方面的权衡。通过理解这些联系,开发者可以在不同的编程语言和应用场景中选择适合的类型检查方式和反射机制,以实现所需的动态行为和灵活性,同时保证性能和安全性。

hhw_hhw的博客 6033

力扣练习题题库(持续更新)

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。输入不存在公共前缀。

qq_18529581的博客 271

【TELEMAC V8P4】TELEMAC-2D 用户手册核心概念与应用场景速览

本文深入解析了TELEMAC-2D水动力模型的核心概念与应用。作为基于二维浅水方程的开源数值模拟工具,TELEMAC-2D广泛应用于河流动力学、洪水演进、污染物输运及泥沙运动模拟。文章结合用户手册与实战经验,详细拆解了其理论框架、关键物理过程(如湍流模型、干湿网格处理),并提供了从模型搭建、文件配置到典型场景(如工程评估、污染应急、洪水模拟)的实用指南,帮助用户快速掌握这一强大工具。

weixin_29200741的博客 163

Python爬虫实战:爬取携程旅游平台数据,我拆解了动态反爬+Cookie续命(附完整可运行代码)

反爬类型表现形式应对思路sign参数返回403/空数据逆向JS还原加密逻辑Cookie时效登录后1小时Cookie失效定时刷新Cookie/保存登录态行为检测爬取过快触发验证码模拟真人延时/随机点击IP封禁单IP爬取超50条数据被封付费代理池/降低请求频率爬取携程旅游平台数据的核心,不是“简单的HTTP请求”,而是“理解平台的反爬逻辑并合规适配”——从sign参数破解到Cookie维护,再到行为模拟,每一步都是对HTTP协议、前端加密、用户行为的深度理解。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1713

力扣mysql练习题01(简单)

力扣mysql练习题01(简单) 题目 Create table Person (PersonId int, FirstName varchar(255), LastName varchar(255)) Create table Address (AddressId int, PersonId int, City varchar(255), State varchar(255)) Truncate table Person insert into Person (PersonId, LastName, Fi

qq_42370505的博客 245

基于 ESP32 与 TDS 传感器的水培营养液离子浓度自动配比系统设计与实现

本系统以 ESP32 为主控芯片,结合 TDS(总溶解固体)传感器实时监测水培营养液中的离子浓度,通过蠕动泵自动补充浓缩营养液或清水,实现营养液 EC 值的闭环自动配比。系统适用于家庭及小型农场的水培种植场景,可稳定维持营养液浓度在作物生长所需的最佳区间。

weixin_42300449的博客 81

【线性表】- LeetCode力扣三道练习题详解

作者:甘城なつき 文章简介:LeetCode题目:27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组 三道 OJ 题详解。

qq_63938813的博客 765

出现 RuntimeError: adaptive_avg_pool2d_backward_cuda does not have a deterministic implementation的解决方法

大致就是在执行主函数的训练函数中,在反向传播这一块出现了问题。解决方法就是添加如下代码块。找到提示bug的行数。

码农研究僧的博客 5532

渗透测试工具之Sliver

攻击者需要将生成的植入物传输到目标系统,并执行它。C2 框架的架构与 Metasploit(如 Meterpreter)类似,但更专注于。(Red Teaming)中常见的攻击工具之一,攻击者利用 C2 服务器。组成,二者共同实现 C2 服务器与受控设备的通信。植入物(Implants)是 Sliver 生成的。抓包分析时,可以看到所有数据都是加密传输的。和**监听器(Listeners)**功能。Sliver 支持多种通信协议,如。随着安全防御的不断提升,企业应加强。进行通信,数据仍然是加密的。

idlecloud0105的博客 1936

LeetCode-SQL练习题总结(MySQL实现)

LeetCode上的SQL练习题一共有十九道,题目网址:https://leetcode-cn.com/problemset/database/ 本文将对其中的部分题做一个总结。 176.查询第二高的薪水: 编写一个 SQL 查询,获取Employee表中第二高的薪水(Salary)。 +----+--------+ | Id | Salary | +----+--------+...

Backcanhave7 2953

SAP-ABAP:接口多继承与复合接口设计:复杂业务场景下的能力组合实现方案

本文介绍了ABAP中通过接口多继承与复合接口设计实现能力组合的方案。文章首先辨析了类实现多个接口与接口继承接口的核心概念,指出ABAP虽不支持类多继承,但可通过这两种机制灵活组合能力。随后详细讲解了类实现多个接口的语法规则与三种调用方式,并给出了五个基础能力接口的设计示例(日志记录、权限校验、数据导出、消息通知、格式转换)。作者通过对比单继承与接口多重实现的差异,强调后者在解耦和扩展性上的优势,为复杂业务场景下的能力组合提供了实用解决方案。

baidu_35680696的博客 246

【力扣练习题】【双指针】14-最长公共前缀

shou10jin的博客 122

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

力扣leetcode数组和字符串练习题

力扣leetcode数组和字符串练习题

m0_73448003的博客 159

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【力扣练习题】【迭代法】206. 反转链表

在这里插入图片描述。

shou10jin的博客 132

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【力扣练习题】【递归】144/94/145. 二叉树的前、中、后序遍历

前序:中序:后序:在这里插入图片描述。

shou10jin的博客 170

Leetcode力扣必备算法知识和练习题

https://www.bilibili.com/video/BV1xt4y1e7q4?p=1 一、双指针算法 | Two Pointers ​ 双指针算法是指利用两个指针遍历数组(链表),左右指针相向前进或同向前进,在遍历过程中根据某种限制条件进行筛选,通常可以把时间复杂度降低至O(n)。 普通双指针:两个指针同向移动 对撞双指针:两个指针面对面移动 快慢双指针:慢指针+快指针 1、快慢指针 141. 环形链表 public boolean hasCycle(ListNode ..

落拓子ю的博客 477

Leetcode练习题:动态规划

Leetcode练习题:动态规划_不要偷懒xj的博客-优快云博客

bluewelkin的专栏 163

【力扣练习题】【双指针】28-找出字符串中第一个匹配项的下标

shou10jin的博客 344

力扣关于链表有关的练习题

力扣链表题目

m0_61608447的博客 1031

【力扣练习题】【数组】27- 移除元素

【力扣练习题】【数组】27- 删除有序数组中的重复项@

shou10jin的博客 208

【树结构与栈】中等力扣练习题

二叉树中和为目标值的路径:给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。叶子节点是指没有子节点的节点。彩灯装饰记录I:一棵圣诞树记作根节点为root的二叉树,节点值为该位置装饰彩灯的颜色编号。请按照从左到右的顺序返回每一层彩灯编号。验证图书取出顺序:现在图书馆有一堆图书需要放入书架,并且图书馆的书架是一种特殊的数据结构,只能按照一定的顺序放入和拿取书籍。给定一个表示图书放入顺序的整数序列p

绚烂的萤火-博客 957

【力扣练习题】【双指针】160-相交链表

如果指针 pA 为空,则将指针 pA 移到链表 headB 的头节点;如果指针 pB 为空,则将指针 pB 移到链表 headA 的头节点。如果指针 pA 不为空,则将指针 pA 移到下一个节点;如果指针 pB 不为空,则将指针 pB 移到下一个节点。当指针 pA 和 pB 指向同一个节点或者都为空时,返回它们指向的节点或者 null。每步操作需要同时更新指针 pA 和 pB。

shou10jin的博客 224

力扣(LeetCode)数据结构练习题(2)

这里的题目也是很明了的,让我们返回一个中间节点就行了 ,那么我们要解决的就是如何找到中间节点,很多人想的办法是遍历一遍求出长度,然后又遍历到中间节点返回,但是这样就会增加时间复杂度了。然后我们就可以将代码往后遍历,这时n3的作用就是提前记住原来n2的next,然后令n2=n3,n1=n2,即可完成往后遍历。现在我们来审题,题目很明了让我们反转一个单向链表,那么这里我们就可以简单思考一下思路了,有了思路我们就可以开始尝试一下写代码了。我们这里是将节点里的指针进行反转即可完成链表的反转。

2302_81249757的博客 1465
上一篇: kinova与intel realsense D435手眼标定
miss_future
博客等级 码龄9年 6粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值