lc701.二叉搜索树插入

void dfs不行

TreeNode* dfs,带接受参数处理的dfs

当为空的时候,就可以添加插入

if (!root)

         {

            return new TreeNode(val);

        }

插入位置

root->left = insertIntoBST(root->left, val);

class Solution {

public:

    TreeNode* insertIntoBST(TreeNode* root, int val) 

    {

        // 若根节点为空,直接创建新节点作为根

        if (!root)

         {

            return new TreeNode(val);

        }

        

        // 根据值的大小决定插入左子树还是右子树

        if (val < root->val) 

        {

            root->left = insertIntoBST(root->left, val);

        } 

        else 

        {

            root->right = insertIntoBST(root->right, val);

        }

        return root;

    }

};

联想:

有序合并两个链表

l1->next=merge(l1->next,l2);

return l1;

 

lc61.链表分割点

class Solution {
public:
ListNode* rotateRight(ListNode* head, int k) {
if(!head || !head->next)
return head;


int n=0;
ListNode* tmp=head;
while(tmp)
{
n++;
tmp=tmp->next;
}

k=k%n;
if(k==0) return head;

ListNode* cy=head;
int flag=n-k;
int cnt=0;
ListNode* a;
ListNode* b;
while(head)
{
cnt++;

if(cnt==flag)
{
a=head;
b=head->next;
break;
}

head=head->next;
}

a->next=nullptr;
ListNode* newhead=b;

while(b->next)
{
b=b->next;
}
b->next=cy;

return newhead;
}
};

 

 

迭代器

对比于for循环

for循环一般是以特定顺序循环,迭代器是以特定遍历规则去访问集合中每个元素,不严谨地来说,可以认为for的概念范围比迭代器小,参考 迭代器模式  

不能用for循环遍历一个 红黑树  或hash链表之类,迭代器是对所有可遍历数据结构的抽象和封装。


map

在C++中, std::map 是有序集合,其内部通过红黑树实现,会按照键(key)的升序自动排序。

获取 std::map 最后一个元素的方法:

- 使用 rbegin() 函数,它返回指向最后一个元素的反向迭代器,例如: auto last = map.rbegin(); 
- 通过 *last 可访问该元素(键值对),通过 last->first 获取键, last->second 获取值。

 

lc82.链表删重

引入flag

return前处理:

newhead->next=nullptr; //截断尾部可能的残留


class Solution {
public:
ListNode* deleteDuplicates(ListNode* head)
{
if(!head || !head->next)
return head;

ListNode* newhead=new ListNode(0);
ListNode* ret=newhead;
int flag=-1000;

while(head)
{
if(head->next && head->val==head->next->val)
flag=head->val;

if(head->val!=flag)
{
newhead->next=head;
newhead=newhead->next;
}

head=head->next;
}


newhead->next=nullptr; //截断尾部可能的残留
return ret->next;
}
};

 


lc190 位运算

 class Solution {
public:
uint32_t reverseBits(uint32_t n) {
uint32_t result = 0;
for (int i = 0; i < 32; ++i)
result = (result << 1) + (n >> i & 1);
return result;
}
};

lc2044.子集按位或

计算最大按位或的子集数量

class Solution {
public:
int countMaxOrSubsets(vector<int>& nums) {
int max_or = 0;
int count = 0;
int n = nums.size();

// 遍历所有子集(共2^n个)
for (int mask = 1; mask < (1 << n); ++mask) {
int current_or = 0;
for (int i = 0; i < n; ++i) {

if (mask & (1 << i)) {
current_or |= nums[i];
}
}


// 更新最大或值和计数
if (current_or > max_or)

          {
max_or = current_or;
count = 1;
}

           else if (current_or == max_or)

           {
count++;
}
}
return count;
}
};


主要修改说明:

1.聚焦子集按位或计算
2. 使用位运算遍历所有非空子集(掩码 mask 从1开始,避免空集)
3. 计算每个子集的按位或值,追踪最大值并统计出现次数
4. 时间复杂度O(n·2ⁿ),适用于n≤20的场景(题目隐含约束)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/93756.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93756.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/93756.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

方法学习(二)

.一、变量作为实参使用&#xff1a;1.定义一个方法&#xff0c;比较两个整数的大小&#xff0c;如果第一个整数比第二个整数大&#xff0c;返回true否则返回false。public static void main(String[] args) {int i 3;int j 5;//传递的是i和j&#xff0c;但是真正传递的是i和j…

计算机视觉CS231n学习(1)

面向视觉识别的卷积神经网络 CS231n Introduction计算机视觉的历史 the history of computer vision 重要节点&#xff1a;1959 Hubel & Wiesel 利用和人比较相像的猫的视觉神经做实验&#xff1a;简单细胞反应灯的位置&#xff1b;复杂细胞反应灯的位置和移动&#xff1b;…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博内容IP地图可视化分析实现

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解微博内容IP地图可视化分析实现 视频在线地…

Z20K118库中寄存器及其库函数封装-SYSCTRL库

1. 系统设备识别寄存器(SCM)7个位域。 记录设备信息。Z20K11x[FAM_ID:Z20K/Z20M,SUBF_ID:1/3,SER_ID:1/4]特征ID版本号FLASH存储器大小封装类型。1-1 SYSCTRL_DeviceId_t SYSCTRL_GetDeviceId(void)读取设备信息。2.独一ID号寄存器&#xff08;SCM&#xff09;4个该寄存器存储完…

007TG洞察:波场TRON上市观察,Web3流量工具的技术解析与应用

引言&#xff1a;波场TRON&#xff08;TRX&#xff09;登陆资本市场及近期加密市场热点&#xff08;如MEME币&#xff09;&#xff0c;凸显了实时流量捕获与转化在Web3领域的战略地位。对于技术团队而言&#xff0c;构建支撑全球业务的Web3平台&#xff0c;核心挑战在于&#x…

STM32——HAL 库MDK工程创建

总&#xff1a;STM32——学习总纲 参考工程&#xff1a; 实验0-3&#xff0c;新建工程实验-HAL库版本 前置知识&#xff1a; STM32——HAL库 一、HAL 库 MDK工程新建步骤简介 例&#xff1a; 各个文件夹内容&#xff1a; 1.1 Drivers 1.2 Middlewares 1.3 Output 1.4 Pro…

【图像处理】霍夫变换:霍夫变换原理、霍夫空间、霍夫直线、霍夫圆详解与代码示例

霍夫变换详解与代码示例 霍夫变换&#xff08;Hough Transform&#xff09;是一种用于检测图像中几何形状&#xff08;如直线、圆&#xff09;的特征提取技术。其核心思想是将图像空间中的点映射到参数空间&#xff08;霍夫空间&#xff09;&#xff0c;通过累积投票机制识别形…

Java WEB技术-序列化和反序列化认识(SpringBoot的Jackson序列化行为?如何打破序列化过程的驼峰规则?如何解决学序列化循环引用问题?)

一、什么是序列化和反序列化 在java项目中&#xff0c;对象序列化和反序列化通常用于对象的存储或网络传输等。如&#xff1a;服务端创建一个JSON对象&#xff0c;对象如何在网络中进行传输呢&#xff1f;我们知道网络传输的数据通常都是字节流的形式&#xff0c;对象想要在网络…

【生活系列】MBTI探索 16 种性格类型

博客目录一、MBTI 的四个核心维度1. 精力来源&#xff1a;外向&#xff08;E&#xff09;vs 内向&#xff08;I&#xff09;2. 信息获取方式&#xff1a;感觉&#xff08;S&#xff09;vs 直觉&#xff08;N&#xff09;3. 决策方式&#xff1a;思考&#xff08;T&#xff09;v…

innovus在ccopt_design时设置update io latency

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 往期文章:

电脑出现英文字母开不了机怎么办 原因与修复方法

当您按下电脑开机键&#xff0c;屏幕上却只显示一串串陌生的英文字母&#xff0c;无法正常进入系统时&#xff0c;这通常是电脑在向您“求救”。这种情况可能由多种原因引起&#xff0c;从外部设备冲突到系统文件损坏&#xff0c;都可能导致电脑无法启动。不必过于焦虑&#xf…

CSS和XPATH选择器对比

1、优缺点比较特性CSS选择器XPath语法复杂度简洁易读较为复杂性能通常更快可能较慢向上遍历不支持支持&#xff08;可选择父元素&#xff09;文本内容选择有限支持完全支持索引选择支持&#xff08;:nth-child&#xff09;支持&#xff08;position()&#xff09;浏览器兼容性优…

libomxil-bellagio移植到OpenHarmony

当使用mesa3dcangh提供的amd显卡驱动时&#xff0c;想利用 Mesa 提供的图形硬件加速能力&#xff0c;来支持视频编解码操作时。需要依赖libomxil-bellagio库&#xff0c;现在成果分享如下&#xff1a; 基础知识 1.OpenHarmony中mesa3d amd显卡驱动编译 2.OpenHarmony中基于G…

uvm-tlm-sockets

TLM 2.0引入了套接字(Socket)机制&#xff0c;实现发起方(initiator)与目标方(target)组件间的异步双向数据传输。套接字与端口(port)和导出(export)同源&#xff0c;均继承自uvm_port_base基类。发起事务的组件使用发起方套接字(initiator socket)&#xff0c;称为发起方&…

AI 如何评价股票:三七互娱(SZ:002555),巨人网络(SZ:002558)

三七互娱&#xff08;SZ:002555&#xff09;作为国内领先的游戏公司&#xff0c;其股票表现需结合财务健康度、行业地位、战略布局及潜在风险综合评估。以下从多维度展开分析&#xff1a; 一、财务表现&#xff1a;增长乏力与高分红并存营收与利润双降 2025年Q1营收42.43亿元&a…

Vibe Coding:AI驱动开发的安全暗礁与防护体系

当OpenAI联合创始人Andrej Karpathy在2025年初的推文里首次提及"Vibe Coding"时&#xff0c;这个概念迅速在开发者社区引发共鸣——它描绘了一种诱人的开发模式&#xff1a;开发者用自然语言描述需求&#xff0c;AI接管代码生成、修改甚至调试&#xff0c;整个过程以…

四、主辅源电路

一、主辅源结构主辅源采用反激变换器拓扑&#xff0c;输入供电有母线供电、电池辅源供电、电网辅源供电。开关管为一个高耐压NMOS功率管。主控芯片采用ICE3BS03LJG&#xff0c;其主要参数如下&#xff1a;商品目录AC-DC控制器和稳压器是否隔离隔离工作电压10.5V~26V开关频率65k…

制造业企业如何保障文件外发图纸数据安全的?

在制造业的发展进程中&#xff0c;文件外发是必不可少的环节&#xff0c;但这也给图纸数据安全带来了诸多挑战。一旦图纸数据泄露&#xff0c;企业的核心竞争力可能会受到严重损害。那么&#xff0c;制造业企业该如何保障文件外发图纸数据安全呢&#xff1f;建立完善的管理制度…

RAG:让AI更聪明的“外接大脑“ | AI小知识

RAG&#xff1a;让AI更聪明的"外接大脑" 什么是RAG&#xff1f; 想象你在参加知识竞赛&#xff0c;突然遇到不会的题目。这时你掏出手机快速搜索正确答案——这就是RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索式增强生成&#xff09;的工作原理。…

TCP 连接管理 之 三次握手详解

TCP 连接管理 之 三次握手详解 &#xff08;一&#xff09;TCP三次握手详细过程及状态变化 1. 第一次握手&#xff08;客户端 → 服务器&#xff09; 报文标志位&#xff1a;SYN1&#xff08;同步序列号&#xff09;&#xff0c;ACK0&#xff08;首次握手无确认&#xff09;序列…