6.5 note

一个很有意思的dfs模拟题_前序遍历

 

这个问题的话前置内容显然是字典序,什么是字典序呢?
顾名思义,就是词语在字典中的顺序,也就是我们最常说的a,abandon,ability(我记得前三个是这个)
这是一种字符串之间比较大小的常用策略,即:从前到后,一个个比较字符,如果分出大小了,就按照这个结果作为字符串大小比较的结果。
如果此时一个字符串已经没有字符了(遍历完了),就算这个字符串更小。举个例子,abcd和acb,谁会在字典前面出现呢?显然是abcd,哪怕他更长,但是在第二个字符的时候就已经比出来结果了。
好了,现在明确了字典序,那么其实我们对于这个题目的意思其实也就明白了,虽然我的解题方法确实没有用到字典树,但是我觉得这确实是一个很直观的方式:

灵魂画手哈哈
但是表达的意思其实还是比较明确了的,这个树说明的是在第一个数字是1的情况下的,我们后续所有可能的数字,第二行就表示第二个数字为0-9的各种情况,然后一层层下去。
这意味着每一个节点都表示一个数字,并且一路遍历最左边节点得到的数字都一定是当前字典序最小的数字。
所以我们只需要使用一个方式, 按照字典序最小的情况来遍历这个树不就可以了。

解题过程

这个方式实际上并不难想,就是DFS深度优先遍历,这可以让我们从最上面的根节点开始,每一次都走到当前可以走的不重复的最左边的节点(回去的步骤不算的话)
另外,头结点这里,我画的是1,但是实际上1-9都是可以的,这里不能在上面再加一层的原因是,如果要加的话,这个头只能是0,但是这样我们最后还是需要把他去除掉。

复杂度

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

class Solution {
public:

    vector<int> ans;

    void dfs(int num,int n){
        if(num>n){
            return;
        }
        ans.push_back(num);
        for(int j=0;j<10;j++){
            dfs(num*10+j,n);
        }
    }

    vector<int> lexicalOrder(int n) {
        for(int i=1;i<=9;i++){
            dfs(i,n);
        }
        return ans;
    }
};

模拟: 标记 实现*删除

class Solution {
public:
    string clearStars(string s) {
        int n = s.size();
        // 记录每种字母的出现位置
        vector<int> vec[26];
        // 记录删除哪些位置的字母
        bool ban[n];
        memset(ban, 0, sizeof(ban));

        for (int i = 0; i < n; i++) 
        {
            if (s[i] == '*') 
            {
                // 通过枚举找到最小字母
                for (int c = 0; c < 26; c++) if (vec[c].size() > 0) 
                {
                    // 删除最靠右的该字母
                    ban[vec[c].back()] = true;
                    vec[c].pop_back();
                    break;
                }
            } else {
                // 字母,记录出现位置
                vec[s[i] - 'a'].push_back(i);
            }
        }

        // 构造答案
        string ans;
        for (int i = 0; i < n; i++) if (s[i] != '*' && !ban[i]) ans.push_back(s[i]);
        return ans;
    }
};

os七层:

物 数 网 传 会 表 应

 

矩阵和求原矩阵   lc1605

  • 贪心:每一步取最小
  • 可以横着填

class Solution {
public:
    vector<vector<int>> restoreMatrix(vector<int>& rowSum, vector<int>& colSum)
    {
        int m=rowSum.size(),
        n=colSum.size();
        vector<vector<int>> ret(m,vector<int>(n,0));
       
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
ret[i][j]=min(rowSum[i],colSum[j]);

rowSum[i]-=ret[i][j];
colSum[j]-=ret[i][j];
            }
        }
        return ret;
    }
};

分区起止位置标记

class Solution {
public:
    vector<int> partitionLabels(string s) {
        unordered_map<char, int> lastPos;

// 记录每个字符最后出现的位置
        int n = s.size();
        for (int i = 0; i < n; ++i) {
            lastPos[s[i]] = i;
        }

        vector<int> ret;
        int start = 0;       
        int end = 0;     
   

        for (int i = 0; i < n; ++i)

         {  //遍历字符串
            end = max(end, lastPos[s[i]]); // 更新


            if (i == end)

            {      // 到达终点
                ret.push_back(end - start + 1);

                start = i + 1;             // 下一个起点
            }
        }
        return ret;
    }
};
 

奇偶 不另开两队列

+2  实现ret的方法

class Solution {
public:
    vector<int> rearrangeArray(vector<int>& nums) {
        int n = nums.size();
        int i = 0, j = 1;
        vector<int> ret(n);
        for (int num : nums) {
            if (num > 0) {
                ret[i] = num;
                i += 2;

            } else {
                ret[j] = num;
                j += 2;
            }
        }
        return ret;
    }
};

 

股票的资本损益

select 

    stock_name,

    sum(case when operation='buy' then -price else price end ) as 'capital_gain_loss'

from 

    Stocks

group by 

    stock_name


从股票交易表(Stocks)里,按股票名称分组统计买卖后的资金盈亏。
 
- 核心逻辑:
- 遇到买入操作(buy),用 -price 表示资金减少(花钱买股票);
- 遇到卖出或其他操作,用 +price 表示资金增加(卖股票赚钱);
- 最后把同一只股票的所有操作金额相加(sum),得出这只股票的总盈亏(capital_gain_loss)。
 
举例:
若某股票买入2次(价格100、200),卖出1次(价格300),
计算为: -100 -200 +300 = 0 ,即不赚不亏。

C++ 的  explicit  关键字用于禁止构造函数的隐式类型转换

- 没有  explicit  时:若构造函数只有一个参数,编译器会自动用该参数创建对象(隐式转换)。

例: int a = 1; MyClass obj = a; (假设  MyClass  有  MyClass(int)  构造函数,会隐式用  a  创建  obj )。

- 加上  explicit  后:禁止这种隐式转换,必须显式创建对象。

例: MyClass obj(a); (必须用括号明确调用构造函数)。

 

作用:避免意外的类型转换,让代码意图更清晰,减少潜在 bug。

 

heap的实现

 

 

 二分查找

 

 

递归转动态规划

 

cpu vs gpu

 

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

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

相关文章

day027-Shell自动化编程-基础

文章目录 1. 修改vim配置文件自动添加注释2. 故障案例&#xff1a;Windows上写的Shell脚本上传到Linux系统上运行报错3. 脚本运行方法4. 变量4.1 普通变量4.2 环境变量4.3 特殊变量4.4 案例&#xff1a;书写ping检查脚本&#xff0c;检查脚本传入的第一个参数4.5 面试题&#x…

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…

人工智能赋能高中学科教学的应用与前景研究

一、引言 1.1 研究背景 在科技飞速发展的当下&#xff0c;人工智能&#xff08;Artificial Intelligence&#xff0c;简称 AI&#xff09;已成为全球瞩目的关键技术领域&#xff0c;深刻地改变着人们的生活、工作和学习方式。从智能家居设备到智能交通系统&#xff0c;从医疗…

八、【ESP32开发全栈指南:UDP客户端】

1. 环境准备 安装ESP-IDF v4.4 (官方指南)确保Python 3.7 和Git已安装 2. 创建项目 idf.py create-project udp_client cd udp_client3. 完整优化代码 (main/main.c) #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h&…

Android Studio 解决首次安装时下载 Gradle 慢问题

1、问题描述 第一次安装 Android Studio 时&#xff0c; 新建工程后&#xff0c;在编译时会自动去下载 Gradle&#xff0c;但是一般都会下载失败&#xff0c;提示链接超时&#xff1a; Could not install Gradle distribution from https://services.gradle.org/distributions…

hive聚合函数多行合并

在数据仓库和大数据处理的场景中&#xff0c;Hive提供了强大的SQL查询能力&#xff0c;其中包括聚合函数用于处理和合并多行数据。本文将深入探讨Hive中的几种常见聚合函数及其在多行合并中的应用。 一、Hive中的常见聚合函数 Hive提供了多种聚合函数&#xff0c;这些函数可以…

关于物联网的基础知识(一)

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于物联网的基础知识&#xff08;一&a…

迁移科技3D视觉系统:重塑纸箱拆垛场景的智能革命

一、传统拆垛场景的困局与破局之道 在汽车零部件仓库中&#xff0c;每天有超过2万只异形纸箱需要拆垛分拣。传统人工拆垛面临三大挑战&#xff1a; 效率瓶颈&#xff1a;工人每小时仅能处理200-300件&#xff0c;且存在间歇性疲劳安全隐患&#xff1a;20kg以上重箱搬运导致年…

微软重磅发布Magentic UI,交互式AI Agent助手实测!

微软重磅发布Magentic UI,交互式AI Agent助手实测! 何为Magentic UI? Magentic UI 是微软于5.19重磅发布的开源Agent助手,并于24日刚更新了第二个版本0.04版 从官方的介绍来看,目标是打造一款 以人为中心 的智能助手,其底层由多个不同的智能体系统驱动,能够实现网页浏览…

Python实现快速排序的三种经典写法及算法解析

今天想熟悉一下python的基础写法&#xff0c;那就从最经典的快速排序来开始吧&#xff1a; 1、经典分治写法&#xff08;原地排序&#xff09; 时间复杂度&#xff1a;平均O(nlogn)&#xff0c;最坏O(n) 空间复杂度&#xff1a;O(logn)递归栈空间 特点&#xff1a;通过左右指针…

海康网络摄像头实时取帧转Opencv数组格式(h,w,3),已实现python、C#

海康摄像头取帧都是有官方demo的&#xff0c;但是将海康格式的数据转为Opencv格式的没有相关demo&#xff0c;而大部分深度学习图像检测算法(如YOLO)&#xff0c;都是用opencv格式的图像作为输入&#xff0c;因此将海康格式数据转为opencv格式兼容性更强 需要代码请私信联系&a…

职坐标IT教育物联网全栈开发实战:传感器到云平台全链路

物联网全栈开发涉及从终端感知到云端服务的全流程技术整合&#xff0c;其核心在于构建完整的“端-管-云-用”技术链条。为帮助开发者系统掌握这一能力&#xff0c;课程围绕四大模块展开&#xff1a;传感器数据采集与处理、通信协议适配与优化、云平台架构设计及跨平台应用开发。…

LUFFY(路飞): 使用DeepSeek指导Qwen强化学习

论文标题 Learning to Reason under Off-Policy Guidance 论文地址 https://arxiv.org/pdf/2504.14945 代码地址 https://github.com/ElliottYan/LUFFY 作者背景 上海人工智能实验室&#xff0c;西湖大学&#xff0c;南京大学&#xff0c;香港中文大学 动机 目前大模型…

Android Camera Hal中通过Neon指令优化数据拷贝

背景描述&#xff1a; Camera apk普通相机模式录像操作时&#xff0c;一般是同时请求两个流&#xff0c;即预览流和录像流。对于两个流输出图像格式和分辨率相同的情况下&#xff0c;是不是可以通过一个流拷贝得到另一个流的数据&#xff0c;进而节省掉一个Sensor输出处理两次…

WPS word 已有多级列表序号

wps的word中&#xff0c;原来已生成的文档里&#xff0c;已存在序号。比如&#xff0c;存在2、2.1、2.1.1、2.1.1.1、2.1.1.1.1 5层序号&#xff0c;而且已分为5级。但增加内容的时候&#xff0c;并不会自动增加序号&#xff0c;应该如何解决&#xff1f; 原来长这样&#xff…

从零开始制作小程序简单概述

以下是结合案例的“从零制作小红书风格小程序”的全流程指南&#xff0c;采用小红书爆款笔记的结构呈现&#xff0c;并附CSDN参考资源&#x1f447;&#xff1a; 一、核心开发步骤&#xff08;附工具推荐&#xff09; 账号与定位 ✅ 注册类型选择&#xff1a;个人店&#xff08…

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…

网络编程之服务器模型与UDP编程

一、服务器模型 在网络通信中&#xff0c;通常要求一个服务器连接多个客户端 为了处理多个客户端的请求&#xff0c;通常有多种表现形式 1、循环服务器模型 一个服务器可以连接多个客户端&#xff0c;但同一时间只能连接并处理一个客户的请求 socket() 结构体 bind() listen() …

open3D:三维点云处理

open3d 点云数据处理 爆肝5万字❤️Open3D 点云数据处理基础&#xff08;Python版&#xff09;_python 点云 焊缝-CSDN博客 如何用NumPy读取和保存点云数据 - 知乎 读取并可视化点云 np.loadtxt 从txt中读取点集&#xff0c;并open3d显示单个点云 txt内容&#xff1a;每行皆…

使用联邦多轨迹图神经网络(GNNs)结合稀缺数据预测婴儿脑连接|文献速递-深度学习医疗AI最新文献

Title 题目 Predicting infant brain connectivity with federated multi-trajectory GNNs using scarce data 使用联邦多轨迹图神经网络&#xff08;GNNs&#xff09;结合稀缺数据预测婴儿脑连接 01 文献速递介绍 多模态影像下的婴儿脑连接演化预测&#xff1a;联邦学习与…