【C++刷题】经典简单题第二辑

  1. 回文排列
    在这里插入图片描述
class Solution 
{
public:bool canPermutePalindrome(string s) {// 记录字符出现的次数int count[256] = {0};for(size_t i = 0; i < s.size(); ++i)++count[s[i]];// 记录字符出现次数为奇数的个数int flag = 0;for(size_t i = 0; i < 256; ++i)if(count[i] % 2 == 1)++flag;if(flag > 1)return false;return true;}
};
  1. URL化
    在这里插入图片描述
class Solution 
{
public:string replaceSpaces(string S, int length) {int front = length - 1;int back = front;// 遍历找出空格个数for(int i = 0; i < length; ++i){if(S[i] == ' '){back += 2;}}// 实际URL化后所需的空间大小S.resize(back + 1);while(front != back){if(S[front] != ' '){S[back--] = S[front];}else{S[back--] = '0';S[back--] = '2';S[back--] = '%';}--front;}return S;}
};
  1. 配对交换
    在这里插入图片描述
class Solution {
public:int exchangeBits(int num) {int num1 = 0b01010101010101010101010101010101;int num2 = 0b10101010101010101010101010101010;// 获取奇数位num1 &= num;// 获取偶数位num2 &= num;return (num1 << 1) + (num2 >> 1);}
};
  1. 递归乘法
    在这里插入图片描述
class Solution
{
public:// A * B = A + A * (B - 1) = A + A + A * (B - 2) = ....int multiply(int A, int B){if(B == 0)return 0;if(B == 1)return A;return A + multiply(A, B - 1);}
};
  1. 阶乘尾数
    在这里插入图片描述
/*
* 尾数0是乘10来的,10是从2*5来的
* [1,n]中因子5相对2会少些,找出[1,n]中因子5的个数,就是尾数0的个数
*/
class Solution 
{
public:int trailingZeroes(int n) {int count = 0;while(n >= 5){n /= 5;count += n;}return count;}
};
  1. 二进制链表转整数
    在这里插入图片描述
    在这里插入图片描述
class Solution
{
public:int getDecimalValue(ListNode* head) {int num = 0;while(head != NULL){num = (num << 1) + head->val;head = head->next;}return num;}
};
  1. 从链表中删去总和值为零的连续节点
    在这里插入图片描述
class Solution {
public:ListNode* removeZeroSumSublists(ListNode* head){ListNode* newhead = new ListNode;newhead->next = head;ListNode* front = newhead;while (front){int sum = 0;ListNode* back = front->next;while (back){sum += back->val;if (sum == 0){ListNode* del = front->next;back = back->next;while (del != back){ListNode* tmp = del;del = del->next;// delete tmp;}front->next = back;}else{back = back->next;}}front = front->next;}head = newhead->next;delete newhead;return head;}
};
  1. 括号的最大嵌套深度
    在这里插入图片描述
class Solution {
public:int maxDepth(string s){int count = 0; // 记录当前深度int depth = 0; // 记录最深度for (char c : s){if (c == '('){++count;if(count > depth){++depth;}}else if (c == ')'){--count;}}return depth;}
};
  1. 整理字符串
    在这里插入图片描述
    在这里插入图片描述
class Solution {
public:string makeGood(string s) {size_t i = 0;while(s.size() > 0 && i < s.size() - 1){if(abs(s[i] - s[i+1]) == 32){s.erase(i, 2);if(i > 0){--i;}continue;}++i;}return s;}
};
  1. 奇偶树
    在这里插入图片描述
    在这里插入图片描述
class Solution {
public:bool isEvenOddTree(TreeNode* root){queue<TreeNode*> q;q.push(root);if((q.front()->val) % 2 == 0){return false;}int level = 0;int num = 1;while(!q.empty()){// v用于存储一层节点数据用于比较判断vector<int> v;while(num--){if(q.front()->left){q.push(q.front()->left);v.push_back(q.back()->val);}if(q.front()->right){q.push(q.front()->right);v.push_back(q.back()->val);}q.pop();}++level;num = v.size();if(!v.empty()){if(level % 2) // level 是奇{int prev = v[0];if(prev % 2 == 1){return false;}for(size_t i = 1; i < v.size(); ++i){if((v[i] % 2 != 0) || prev <= v[i]){return false;}prev = v[i];}}else // level 是偶{int prev = v[0];if(prev % 2 == 0){return false;}for(size_t i = 1; i < v.size(); ++i){if((v[i] % 2 != 1) ||  prev >= v[i]){return false;}prev = v[i];}}          }}    return true;}
};
  1. 将句子排序
    在这里插入图片描述
    在这里插入图片描述
class Solution {
public:string sortSentence(string s){vector<string> vs;vs.resize(9);// 倒序遍历,找数字for(int i = s.size() - 1; i >= 0; --i){if(s[i] >= '0' && s[i] <= '9'){int j = i - 1;while(j >= 0 && s[j] != ' '){--j;}// 将对应编号的数字对应的字符串,放入数组vs[s[i] - '0' - 1] += string(s.begin() + j + 1, s.begin() + i);i = j;}}// 拼接到vs[0]for(size_t i = 1; i < 9; ++i){if(vs[i].size() > 0){vs[0] += (' ' + vs[i]);}}return vs[0];}
};
  1. 最长和谐子序列
    在这里插入图片描述
    在这里插入图片描述
class Solution {
public:int findLHS(vector<int>& nums){map<int, int> m;// 去重 + 排序for (int e : nums){m[e]++;}auto it = m.begin();auto prev = it;++it;int max = 0;while (it != m.end()){if ((it->first - prev->first == 1) && (prev->second + it->second > max)){max = prev->second + it->second;}prev = it;++it;}return max;}
};

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

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

相关文章

yolov5权重文件.pt转.bin文件

参考链接&#xff1a;YOLOv5学习记录(二): 模型转化及Android端部署_yolo .pt文件转未bin_Xiaoer__Lu的博客-CSDN博客 1、准备pt文件 我的目录是&#xff1a;C:\Users\Administrator\Desktop\driving\yolov5-mask-42-master\runs\train\exp_yolov5s\weights里的best.pt 2、p…

算法:贪心---跳一跳

1、题目&#xff1a; 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 2…

云养殖模式:让养殖业走向智慧化、高效化、绿色化

养殖业是我国农业的重要组成部分&#xff0c;也是农民增收的重要来源。然而&#xff0c;传统的养殖方式存在着许多问题&#xff0c;如水环境污染、病害频发、市场风险高、管理落后等&#xff0c;导致养殖效益低下&#xff0c;难以适应现代消费者的需求。如何改变这种局面&#…

Java基础(二十三):反射(reflection)

文章目录 一、反射机制1.1 快速入门1.2 反射机制原理 二、反射相关类三、反射调用性能优化四、Class类4.1 基本介绍4.2 使用4.3 哪些类型有Class对象 五、类加载六、获取类的结构信息七、反射-创建实例、操作属性和方法&#xff08;爆破&#xff09; 一、反射机制 1.1 快速入门…

自然语言处理应用(三):微调BERT

微调BERT 微调&#xff08;Fine-tuning&#xff09;BERT是指在预训练的BERT模型基础上&#xff0c;使用特定领域或任务相关的数据对其进行进一步训练以适应具体任务的需求。BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;是一种基于Tr…

【强化学习篇】on-policy 和 off-policy 的区别

本质区别&#xff1a; 要学习的 agent 跟和环境互动的 agent 是同一个&#xff0c;是on-policy(同策略) 要学习的 agent 跟和环境互动的 agent 不是同一个&#xff0c;是off-policy(异策略) on-policy 与 off-policy值函数&#xff1a; on-policy与off-policy区别是&#xf…

MCU软核 2. Xilinx Artix7上运行tinyriscv

0. 环境 - ubuntu18 - win10 vivado 2018.3 - git desktop - XC7A35TV12核心板 - ft2232hl小板&#xff08;用于程序烧录&#xff09; 1. git克隆源码 Git Desktop -> File -> Clone repository -> -> URL: https://gitee.com/liangkangnan/tinyriscv/ -> Lo…

如何在Python爬虫程序中使用HTTP代理?

在进行网络爬虫时&#xff0c;我们经常需要使用代理服务器来隐藏自己的真实IP地址&#xff0c;以避免被目标网站封禁或限制访问。本文将介绍如何将HTTP代理配置到Python爬虫程序中使用。 什么是HTTP代理&#xff1f; HTTP代理是一种网络代理&#xff0c;它充当客户端和服务器之…

Redis-带你深入学习数据类型zset

目录 1、zset有序集合 2、zset相关命令 2.1、添加或更新指定的元素——zadd 2.2、获取有序集合zset的元素个数相关命令&#xff1a;zcard、zcount 2.3、返回指定区间元素相关命令&#xff1a;zrange、arevrange、zrangebyscore 2.4、删除相关命令&#xff1a;zpopmax、zp…

$ref赋值之后,子组件不渲染(刷新后,$ref父组件传值,子组件不更新数据问题)

在父组件中&#xff0c;点击搜索&#xff0c; 通过this.$refs传值给子组件 this.$refs.GoodsClassNav.paramsAll.keyword key; 子组件结果中不显示&#xff0c; 但是打印this.$refs.GoodsClassNav.paramsAll.keyword&#xff0c;可以打印到最新的值&#xff0c;点击子组件中…

PyQt5通过堆叠布局实现选项卡(多界面)功能

PyQt5通过堆叠布局实现选项卡(多界面)功能 1、创建一个MainWindow 加入Text Brower做标题&#xff0c;几个按钮。 然后在左侧containers中添加Stacked Widget这个控件&#xff0c;初步布局如下&#xff1a; 对窗口中的堆叠容器 “Stacked Widget”&#xff0c;选中后可以用…

【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)

目录 1 Pandas 可视化功能 2 Pandas绘图实例 2.1 绘制线图 2.2 绘制柱状图 2.3 绘制随机散点图 2.4 绘制饼图 2.5 绘制箱线图A 2.6 绘制箱线图B 2.7 绘制散点图矩阵 2.8 绘制面积图 2.9 绘制热力图 2.10 绘制核密度估计图 1 Pandas 可视化功能 pandas是一个强大的数…

常驻巨噬细胞诱导的纤维化在胰腺炎性损伤和PDAC中具有不同的作用

介绍一篇2023年8月10日发表在Nature Immunology的文章 标题&#xff1a; Fibrosis induced by resident macrophages has divergent roles in pancreas inflammatory injury and PDAC 影响因子&#xff1a;30.5 DOI&#xff1a;https://doi.org/10.1038/s41590-023-01579-x …

web端动效 PAG

之前写过一篇lottie动效的文章&#xff1a;web端动效 lottie-web 使用&#xff0c;本篇写一下PAG-web的基础使用。 PAG是腾讯开发&#xff0c;支持移动端、桌面端以及Web端的动效工作流解决方案。目标是降低或消除动效相关的研发成本&#xff0c;能够一键将设计师在 AE&#x…

TensorFlow 03(Keras)

一、tf.keras tf.keras是TensorFlow 2.0的高阶API接口&#xff0c;为TensorFlow的代码提供了新的风格和设计模式&#xff0c;大大提升了TF代码的简洁性和复用性&#xff0c;官方也推荐使用tf.keras来进行模型设计和开发。 1.1 tf.keras中常用模块 如下表所示: 1.2 常用方法 …

Ei Scopus检索 | 2024年第四届能源与环境工程国际会议(CoEEE 2024)

会议简介 Brief Introduction 2024年第四届能源与环境工程国际会议(CoEEE 2024) 会议时间&#xff1a;2023年5月22日-24日 召开地点&#xff1a;意大利米兰 大会官网&#xff1a;www.coeee.org CoEEE 2024将围绕“能源与环境工程”的最新研究领域而展开&#xff0c;为研究人员、…

VSCODE 使用技巧

vscode批量去掉代码中空行的方法 1、在vscode中使用ctrl f组合快捷键打开替换窗口. 2、输入下面的正则表达式 ^\s*(?\r?$)\n https://mp.weixin.qq.com/s/ZKV2sZWszxBLNTNLEWhsng

springboot redisTemplate.opsForValue().setIfAbsent返回null原理

一、版本 springboot版本&#xff1a;spring-boot-starter-data-redis 2.1.6 redisson版本&#xff1a;redisson-spring-boot-starter 3.11.5 二、场景 Boolean res redisTemplate.opsForValue().setIfAbsent("key","value");以上代码同一时间多次执行…

Sentinel控制台配置 持久化到nacos

sentinel控制台&#xff0c;使用方便&#xff0c;功能强大。使用官方的jar包&#xff0c;配置不会持久化&#xff0c;sentinel重启后会导致&#xff0c;之前的规则全部丢失&#xff0c;下面一起改造源码实现规则数据的持久化 sentinel源码地址 &#xff08;github访问太慢&am…

嵌入式学习笔记(25)串口通信的基本原理

三根通信线&#xff1a;Tx Rx GND &#xff08;1&#xff09;任何通信都要有信息作为传输载体&#xff0c;或者有线的或则无线的。 &#xff08;2&#xff09;串口通信时有线通信&#xff0c;是通过串口线来通信的。 &#xff08;3&#xff09;串口通信最少需要2根&#xff…