SCNU习题 总结与复习

news2024/11/7 5:18:06

1. P1:构建最大二叉树 【分治】 重点

在这里插入图片描述

在这里插入图片描述
构树函数需要注意的点;
在这里插入图片描述
前序遍历需要注意,本题的输出有点特点。若一个结点无左子,无右子就不再下去遍历; 其他情况都要下去遍历;

2. P2 寻找多数【分治】

没啥,注意unorder_map的使用
unordered_map 是 C++ STL 提供的一种哈希表实现,允许以常数时间复杂度进行查找、插入和删除操作。以下是 unordered_map 的几个常用方法及其简要说明:

ump常用方法

  1. 构造函数

    • unordered_map<Key, T> ump;
      创建一个空的 unordered_map
  2. 插入元素

    • ump.insert({key, value});
      插入一个键值对。如果键已存在,则插入失败。
    • ump[key] = value;
      插入或更新键 key 的值为 value。如果键存在,则更新;如果不存在,则插入。
  3. 访问元素

    • ump.at(key);
      返回键 key 对应的值。如果键不存在,会抛出 std::out_of_range 异常。
    • ump[key];
      返回键 key 对应的值,如果键不存在,会插入一个默认值。
  4. 查找元素

    • ump.find(key);
      返回一个迭代器,指向键 key位置,如果键不存在,则返回 ump.end()
  5. 删除元素 【重要】

    • ump.erase(key);
      删除键 key 及其对应的值,返回删除的元素数量(0或1)。
    • ump.erase(iterator);
      删除指定迭代器指向的元素。
  6. 检查元素是否存在 【重要】

    • ump.count(key);
      返回键 key 的出现次数(0或1),可用于检查元素是否存在。
  7. 大小和容量

    • ump.size();
      返回 unordered_map 中元素的数量。
    • ump.empty();
      检查 unordered_map 是否为空。
  8. 遍历元素 【重要】

    • 使用范围 for 循环:
      for (const auto& pair : ump) {
          cout << pair.first << ": " << pair.second << endl;
      }
      
  9. 清空元素

    • ump.clear();
      删除 unordered_map 中的所有元素。
  10. 自定义哈希和比较函数

    • 可以在创建时指定自定义哈希函数和比较函数:
      unordered_map<Key, T, HashFunc, EqualFunc> ump;
      

总结

unordered_map 提供了高效的键值对存储和查找功能,常用于需要快速访问和修改元素的场景。了解这些常用方法可以帮助你高效地使用 unordered_map 进行数据管理。

3.P3 找最大连续子序和 【贪心】

在这里插入图片描述

在这里插入图片描述
和为负数就丢弃,和为正数继续枚举,记录最大值;
INT_MIN 在<limits.h>里;

4 & 5.找k个最小数/找k个最大数

在这里插入图片描述
虽然可以更优化,但为了应付考试方便,直接用sort吧[/doge]
最后sort有个用法:

  • sort(iter1,iter2) 本身是从小排序到大
  • sort(iter1,iter2,great< int > () ) 加入仿函数,从大排序到小

6.换硬币 【动态规划】

在这里插入图片描述
dp[i] : 组成i需要的最少硬币数量
dp[i] = min(dp[i] , dp[i-7] , dp[i-5] , dp[i-2]) 前提i>=7,i>=5,i>=2分别
在这里插入图片描述
注意dp[0]不能初始化为dp[0] = 0;虽然dp[0]我们可以认为无需硬币就可以,但也可以认为0无法用硬币去表示;本题就是必须用到后者的意义;

7 & 8.走网格 & 走楼梯【动态规划】

在这里插入图片描述
dp[i][j]:走到(i,j)最少有多少种方法;
每次值都可以从两个地方来源;

if(j>1) dp[i][j] += dp[i][j-1]; //Right
if(i>1) dp[i][j] += dp[i-1][j]; //Dow

在这里插入图片描述

在这里插入图片描述
一个道理,一个二维一个一维
在这里插入图片描述

9.背包问题 【动态规划】 重点

在这里插入图片描述
在这里插入图片描述
拿东西的时候别忘记了加上价值哈(+V[i]);

10.最长回文子串 【动态规划】

在这里插入图片描述
1.区间DP,记住s.substr(startidx,len)的用法,一个是开始下标,第二个是长度;
2.len = r-l +1 ; 又r<n,故l<n-len+1;
在这里插入图片描述

11. 最大连续子数组和 【动态规划】

和第2题一样;

12.分发饼干 【贪心】

在这里插入图片描述
在这里插入图片描述
很简单,将孩子从小到大排序,饼干也从小到大排序,尽可能贪心的满足最小要求去枚举;(可以通过数学证明确实如此)

13.反转69

在这里插入图片描述
没啥说的,尽可能从前面开始将6反为9

14.盛最多的水 【贪心】

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

15.括号生成 【回溯】 重点

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

16. K组合问题【回溯】

在这里插入图片描述
做烂了

17.求子集异或和 【回溯】

在这里插入图片描述
在这里插入图片描述
每次枚举都是不重复的,一定是一个子集,那么每次枚举后都需要进行计算异或和就行;

18.分割回文串 【回溯】 重点

在这里插入图片描述
在这里插入图片描述
枚举分割的位置i,若是回文串则加入;

19. 目标和 【回溯】

在这里插入图片描述
在这里插入图片描述
枚举每个数的两种选择就行了

20.电话号码组合 【回溯】

在这里插入图片描述

和19题一样的;
在这里插入图片描述

21.优美的数列【回溯-排列】

在这里插入图片描述
在这里插入图片描述
枚举全排列就行;在此基础上加上满足两个条件就行;

22.K组合 【回溯】

在这里插入图片描述
No need to say.

23.大礼包 【分支界限法】

在这里插入图片描述
1.过滤出有用礼包
2.枚举直接方式,枚举礼包,看最小;

24.分成K个相等子集 【回溯】 重要

在这里插入图片描述
注意隐含条件:
在这里插入图片描述
注意隐含条件;其次枚举的是每个数,然后选择放哪个篮子里,如果满了就要看下个篮子;

25.跳跃游戏 【贪心】

在这里插入图片描述
在这里插入图片描述
看代码了;就遍历i能够跳到的边界,并且在迭代的过程中,更新最大边界;

26.整数拆分 【动态规划】 重要


在这里插入图片描述
每个数,可以拆出一个数j作为拆分值,那么另外的i-j你可以选择继续拆,也可以选择不再继续拆; 对应的就是j x dp[i-j] , j x (i-j) 取max

27.打家劫舍 【动态规划】

在这里插入图片描述
在这里插入图片描述
nothing need to be toldn~

28.戳气球 【动态规划】 重点

在这里插入图片描述
难题,明天解决

29.分发糖果【贪心】

在这里插入图片描述
从左到右遍历一遍满足左规则;
从右到左遍历一遍满足右规则;
取并集;
在这里插入图片描述

30.三数之和 【双指针】 重点

在这里插入图片描述
num_i + num_j + num_k =0 变成 num_i + num_j = -num_k;
再去枚举i,j;不过注意一点,为了保证重复,需要做一点处理;
在这里插入图片描述

31.反转括号 【栈】 重点

在这里插入图片描述
记住一点:为什么要用栈?因为栈可以保存上次处理的数据,方便我们处理上一个数据;
在这里插入图片描述

32.跳跃游戏2 【贪心】

在这里插入图片描述
开始的边界应该设置为0,跳跃也为0;

33.颜色分类

在这里插入图片描述
应付考试,直接sort

34.找假币

在这里插入图片描述
应付考试,直接用unordered_map 去找少的那个;

35.最少操作使数组递增

在这里插入图片描述
在这里插入图片描述
找差距diff,并递增diff+1;继续遍历;

36.组合求和

在这里插入图片描述
在这里插入图片描述
没啥说的,组合就完事了;

37.完全平方数

在这里插入图片描述
for a : 1->n dp[i] = min(dp[i],dp[i - a*a]);
在这里插入图片描述

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

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

相关文章

ssm060基于SSM的高校共享单车管理系统的设计与实现+vue(论文+源码)_kaic

设计题目&#xff1a;高校共享单车管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0…

【算法】(Python)贪心算法

贪心算法&#xff1a; 又称贪婪算法&#xff0c;greedy algorithm。贪心地追求局部最优解&#xff0c;即每一步当前状态下最优选择。试图通过各局部最优解达到最终全局最优解。但不从整体最优上考虑&#xff0c;不一定全局最优解。步骤&#xff1a;从初始状态拆分成一步一步的…

记一次微信云托管搭建Redis服务

背景 最近在做一个微信小程序&#xff0c;规划服务全部部署在云托管上面&#xff0c;本次使用了对象存储、mysql、java服务、Redis服务&#xff08;pc端用的&#xff09;。 由于对部署Redis不理解&#xff0c;查看了官方文档&#xff0c;首先看到的是这个架构图&#xff0c;看…

基于SSM的校园美食交流系统【附源码】

基于SSM的校园美食交流系统 效果如下&#xff1a; 管理员主页面 用户主页面 美食信息页面 美食资讯页面 修改密码页面 论坛中心页面 研究背景 随着高校信息化建设的不断推进&#xff0c;校园生活日益丰富多样&#xff0c;学生对于美食的需求与探索也愈发旺盛。然而&#xff…

Linux—进程学习-01

目录 Linux—进程学习—11.冯诺依曼体系结构2.操作系统2.1操作系统的概念2.2操作系统的目的2.3如何理解管理2.4计算机软硬件体系的理解2.5系统调用和库函数的概念 3.进程3.1进程是什么3.2管理进程3.2.1描述进程-PCB3.2.2组织进程3.2.3总结 3.3查看进程 4.与进程有关的系统调用 …

【电子通识】白皮书、应用手册、用户指南、快速入门指南一般的定义是什么?

一般大厂家的器件或模块,除了给数据表以外,还提供应用手册、技术说明、白皮书等各种文档资料。 如下图所示为ST25 NFC/RFID标签和读卡器的文件资料:其中就有技术说明、白皮书、应用手册等。 如下所示为TI INA228技术文档相关资料: 也有应用手册、用户指南、技术文章…

python opencv灰度变换

灰度变换 灰度变换和二值化的区别&#xff1a; 灰度变换是调整调整图像的灰度动态范围或图像对比度二值化是将图像的每个像素点调至0或255&#xff0c;只呈现白色或黑色 1.灰度化处理 图片的灰度化&#xff1a;将一个像素点的三个颜色变量相等&#xff0c;RGB&#xff0c;此…

toolkit二次开发学习之程序集(ProAsmcomp)和装配体组件路径对象(ProAsmcomppath)

程序集ProAsmcomp可以理解为装配体组件对象。 对象ProAssembly是ProSolid的一个实例&#xff0c;并共享相同的声明。因此&#xff0c;ProAssembly对象可以作为适用于装配体的任何ProSolid和ProMdl函数的输入。特别是&#xff0c;因为你可以使用函数ProSolidFeatVisit()来遍历特…

WPF中如何简单的使用CommunityToolkit.Mvvm创建一个项目并进行 增删改查

目录 开始前准备的数据库dbblog如下&#xff1a; 第一步&#xff1a;创建项目后下载四个NuGet程序包 第二步&#xff1a;删除原本的MainWindow.XAML文件 并创建如下的目录结构 然后在View文件夹下面创建Login.XAML和Main.XAML 并且在App.XAML中将启动项改为Login.X…

【51蛋骗鸡一共八个灯 按顺序依次12。34。56。78。两个灯同时亮灭的代码】2022-1-19

缘由proteus流水灯-嵌入式-CSDN问答 仿真51单片机流水灯代码-编程语言-CSDN问答 protues仿真单片机控制led流水灯-嵌入式-CSDN问答 #include<reg52.h>//头文件 void main() //主函数 {unsigned char y23;unsigned int ys0;while(1){if(!ys){P0y2;if(!(y2*4))y23…

数据结构:跳表实现(C++)

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言跳表跳表的优化思路skiplist&#xff0c;平衡搜索树&#xff0c;哈希表的对比 实现思路SkiplistNodesearch 搜索add 增加earse 删除 整体…

ssm基于Web的汽车客运订票系统的设计与实现+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码看文章最下面 需要定制看文章最下面 目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容…

SSM中maven

一&#xff1a;maven的分模块开发 maven分模块就是在多人操作一个项目时将maven模块导入依赖&#xff0c;注意仓库里面没有资源坐标&#xff0c;需要使用install操作下载。 二&#xff1a;maven的依赖管理 pom文件中直接写的依赖叫做直接依赖&#xff0c;直接依赖中用到的依…

如何找到养生生活视频素材?推荐几个优秀网站

今天&#xff0c;我们来聊一个实用的话题&#xff0c;那就是如何找到优质的养生视频素材。作为自媒体创作者&#xff0c;高质量的视频素材对内容制作至关重要。不论你是刚入行的新手&#xff0c;还是已经积累了一定粉丝的大V&#xff0c;找到合适的养生视频素材都能帮助你更好地…

vscode的一些使用心得

问题1&#xff1a;/home目录空间有限 连接wsl或者remote的时候&#xff0c;会在另一端下载一个.vscode-server&#xff0c;vscode的插件都会安装进去&#xff0c;导致空间增加很多&#xff0c;可以选择更换这个文件的位置 参考&#xff1a;https://blog.csdn.net/weixin_4389…

画动态爱心(Python-matplotlib)

介绍 氵而已 由于用的是 AI&#xff0c;注释得非常清楚&#xff0c;自己改改也可以用 代码 # -*- coding: utf-8 -*- # Environment PyCharm # File_name 尝试1 |User Pfolg # 2024/11/05 22:45 import numpy as np import matplotlib.pyplot as plt import matplot…

13-鸿蒙开发中的综合实战:华为登录界面

大家好&#xff0c;欢迎来到鸿蒙开发系列教程&#xff01;今天&#xff0c;我们将通过一个综合实战项目来实现一个华为登录界面。这个项目将涵盖输入框组件、按钮组件、文本组件和布局容器的使用&#xff0c;帮助你更好地理解和应用这些组件。无论你是初学者还是有一定经验的开…

LCL三相并网逆变器simulink仿真+说明文档

背景描述&#xff1a; 详细解析了LCL三相并网逆变器的工作原理&#xff0c;强调了准PR比例谐振控制的重要性&#xff0c;讨论了电感、电容参数选择及保护电路设计。通过仿真结果展示了逆变器性能优化的方法&#xff0c;以提升系统效率和稳定性。 模型介绍&#xff1a; 整体模…

突破1200°C高温性能极限!北京科技大学用机器学习合成24种耐火高熵合金,室温延展性极佳

在工程应用中&#xff0c;如燃气轮机、核反应堆和航空推进系统&#xff0c;对具备优异高温机械性能的金属合金需求十分旺盛。由于材料熔点的固有限制&#xff0c;传统镍基 (Ni) 高温合金的耐温能力已接近极限。为满足开发高温结构材料的需求&#xff0c;耐火高熵合金 (RHEAs) 于…

使用GPT-SoVITS训练语音模型

1.项目演示 阅读单句话 1725352713141 读古诗 1725353700203 2.项目环境 开发环境&#xff1a;linux 机器配置如下&#xff1a;实际使用率百分之二十几&#xff0c; 3.开发步骤 1.首先是准备数据集&#xff0c;要求是wav格式&#xff0c;一到两个小时即可&#xff0c; 2.…