力扣刷题总结 -- 数组29

85. 解码异或之后的数组(简单)

题目要求:

未知 整数数组arr由 n 个非负整数组成。

经编码后变为长度为 n - 1 的另一个整数数组 encoded ,其中 encoded[i] = arr[i] XOR arr[i + 1] 。例如,arr = [1,0,2,1] 经编码后得到 encoded = [1,2,3] 。

给定编码后的数组encoded和原数组 arr 的第一个元素arr[0]

请解码返回原数组 arr 。可以证明答案存在并且是唯一的。

题目分析:

根据题意,encoded[i] = arr[i] ⊕ arr[i+1],则有encoded[i - 1] = arr[i - 1] ⊕ arr[i],等号两边同时异或arr[i−1],得到:

arr[i - 1] ⊕ encoded[i - 1] = arr[i - 1] ⊕ arr[i - 1] ⊕ arr[i]
arr[i - 1] ⊕ encoded[i - 1] = 0 ⊕ arr[i]
arr[i - 1] ⊕ encoded[i - 1] = arr[i]

所以有arr[i] = arr[i - 1] ⊕ encoded[i - 1] ,根据此公式计算原arr即可。

题目解答:

#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <algorithm>class Solution
{
public:vector<int> decode(vector<int>& encoded, int first){int n = encoded.size() + 1;vector<int> arr(n);  // 创建空数组arr[0] = first;for (int i = 1; i < n; i++){arr[i] = arr[i - 1] ^ encoded[i - 1];  // 根据推导公式反推得到原数组}return arr;}};int main()
{vector<int> encoded = { 1,2,3 };int first = 2;Solution s;cout << "编码后数组为:";for (int e : encoded){cout << e;}cout << endl;vector<int> res = s.decode(encoded, first);cout << "原数组为:";for (int a : res){cout << a;}cout << endl;system("pause");return 0;
}

86. 找到最高海拔(简单)

题目要求:

有一个自行车手打算进行一场公路骑行,这条路线总共由n + 1个不同海拔的点组成。自行车手从海拔为 0 的点开始骑行。

给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差(0 <= i < n)。请你返回 最高点的海拔 。

题目分析:

根据题意,设i点处的海拔高度为 r i r_i ri,则有 r i = g a i n [ i − 1 ] + g a i n [ i ] r_i = gain[i - 1] + gain[i] ri=gain[i1]+gain[i],按此方式遍历gain数组即可。

题目解答:

#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <algorithm>class Solution
{
public:int largestAltitude(vector<int>& gain){int ans = 0, sum = 0;for (int x : gain){sum += x;  // 累加获得每个点的海拔ans = max(ans, sum);  // 将当前海拔和上一次的海拔比较大小}return ans;}
};int main()
{vector<int> gain = { -5,1,5,0,-7 };Solution s;cout << "海拔高度差为:";for (int h : gain){cout << h << ", ";}cout << endl;int res = s.largestAltitude(gain);cout << "最高海拔为:" << res << endl;system("pause");return 0;
}

87. 唯一元素的和

题目要求:

给定一个整数数组nums。数组中唯一元素是那些只出现恰好一次的元素。

请返回 nums 中唯一元素的和 。

题目解答:

#include <iostream>
using namespace std;
#include <string>
#include <vector>
#include <algorithm>
#include<unordered_map>class Solution
{
public:int sumOfUnique(vector<int>& nums, unordered_map<int, int>& state){int ans = 0;// 用哈希表存储每个元素的值和对应的状态,状态1代表只出现一次,状态2代表出现至少2次for (int num : nums){if (state[num] == 0){ans += num;state[num] = 1;}else if (state[num] == 1){ans -= num;state[num] = 2;}}return ans;}};int main()
{vector<int> nums = { 1,2,3,2 };unordered_map<int, int> state;Solution s;cout << "数组中的元素为:";for (int num : nums){cout << num << ", ";}cout << endl;int res = s.sumOfUnique(nums, state);cout << "仅出现一次的元素为:";for (int num : nums){if (state[num] == 1){cout << num << ", ";}}cout << endl;cout << "数组中唯一元素的和为:" << res << endl;system("pause");return 0;
}

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

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

相关文章

【Yarn锁文件全解析】深入理解yarn.lock与版本控制的艺术

标题&#xff1a;【Yarn锁文件全解析】深入理解yarn.lock与版本控制的艺术 Yarn是一个现代的JavaScript包管理工具&#xff0c;旨在提供更快、更安全、更可靠的依赖管理。yarn.lock文件是Yarn工作流程中的一个关键组件&#xff0c;用于锁定项目依赖的确切版本。本文将详细探讨…

手把手家教你进行ChatGPT私有化部署

背景 随着AI技术的不断成熟&#xff0c;加上ChatGPT如火如荼的发布新版本迭代更新&#xff0c;人工智能的热度也升温到史无前例的高度。 我们有理由相信&#xff0c;现在身边还不愿主动去接触这项技术&#xff0c;深入了解的小伙伴&#xff0c;在不久的将来&#xff0c;一定会…

二手物品交易小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;管理员管理&#xff0c;商品信息管理&#xff0c;论坛管理&#xff0c;收货地址管理&#xff0c;基础数据管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;商品信息&…

晨持绪科技:抖音店铺运营思路

在抖音这个充满活力与创意的平台上&#xff0c;店铺运营不仅仅是一种商业行为&#xff0c;它更是一种艺术的展示。如同画家在画布上勾勒出色彩斑斓的画面&#xff0c;抖音店铺的运营者们也在平台上精心策划着每一个细节&#xff0c;以吸引更多的目光和流量。 内容创作。内容是吸…

工程师 - 什么是SMP

什么是 SMP&#xff08;对称多处理&#xff09;&#xff1f; What is SMP (symmetric multiprocessing)? 对称多处理&#xff08;SMP&#xff0c;symmetric multiprocessing&#xff09;是由多个处理器完成的计算机处理过程&#xff0c;这些处理器共享一个操作系统&#xff0…

每天一个数据分析题(四百零五)- 因子分析

因子分析是一种经典的统计分析方法&#xff0c;关于因子分析下列说法错误的是&#xff08; &#xff09;。 A. 因子分析是一种数据简化的技术 B. 最大似然法是因子载荷矩阵的估计方法之一 C. 因子旋转时采用最大方差旋转是一种正交旋转 D. 因子分析的假设中没有规定特殊因子…

新加坡博士申请|中国社科院-新加坡社科大学联合培养工商管理博士

新加坡博士申请|中国社科院-新加坡社科大学联合培养工商管理博士 【项目名称】中国社会科学院大学与新加坡新跃社科大学工商管理博士项目 【学制】最短3年&#xff0c;最长不超过7年 【学位证书】新加坡新跃社科大学工商管理博士学位 【招生对象】企业高管、咨询顾问及其他有…

在 Windows PowerShell 中模拟 Unix/Linux 的 touch 命令

在 Unix 或 Linux 系统中&#xff0c;touch 命令被广泛用于创建新文件或更新现有文件的时间戳。不过&#xff0c;在 Windows 系统中&#xff0c;尤其是在 PowerShell 环境下&#xff0c;并没有内置的 touch 命令。这篇博客将指导你如何在 Windows PowerShell 中模拟 touch 命令…

我在高职教STM32——时钟系统与延时控制(2)

大家好&#xff0c;我是老耿&#xff0c;高职青椒一枚&#xff0c;一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次&#xff0c;同行应该都懂的&#xff0c;老师在课堂上教学几乎是没什么成就感的。正因如此&#xff0c;才有了借助 CSDN 平台寻求认同感和成就…

Python YAML处理神器: ruamel.yaml 和 ruamel.yaml.clib 详解

Python YAML处理神器: ruamel.yaml 和 ruamel.yaml.clib 详解 1. ruamel.yaml 简介2. ruamel.yaml.clib 简介3. 安装4. 基本使用4.1 读取YAML文件4.2 写入YAML文件 5. 高级特性5.1 保留注释和结构5.2 不同的YAML样式5.3 使用ruamel.yaml.clib提升性能 6. 高级用法6.1 自定义标签…

WPS中制作甘特图的详细教程

网上没几个详细说怎么在WPS中制作甘特图的&#xff0c;我自己整理了一下详细教程&#xff0c;最终效果如下图所示&#xff1a; 1.写好需要展示的项目相关信息&#xff0c;如下图所示&#xff1a; #####这个进度的百分比渐变效果这样设置就行了 2.现在我们需要计算已用时间和剩…

[Vue3 + TS + Vite] ref 在 Template 与 Script 下的使用

在Vue 3中&#xff0c;ref 是一个非常重要的概念&#xff0c;它用于在 Template 和 Script 中引用组件实例、DOM元素或者响应式状态。 一、只在Script中创建 ref 在脚本中&#xff0c;ref 被用来创建响应式引用类型。 可以使用 ref 来声明一个响应式的引用变量。这个引用变量…

docker安装ElasticSearchKibana

本文参考以下两篇文章 ✅ElasticSearch&Kibana 部署 云效 Thoughts 企业级知识库 (aliyun.com) docker安装ElasticSearch&Kibana - 飞书 安装elasticsearch 使用docker下载es&#xff1a; docker pull elasticsearch:8.13.0 挂载配置 创建挂在文件目录 mkdir…

uniapp 封装瀑布流组件

思路&#xff1a; 1.coulumns&#xff1a;需要分成几列 2.如何分布数据 3.计算每列的宽度 4.图片进行高度自适应 <template><view :style"{ margin: boxM }"><view class"flex flex-justify-start bg-red" style"background-colo…

AI大模型:解锁未来职业竞争力的金钥匙

AI元年&#xff1a;大模型的革新力量 随着ChatGPT的震撼登场&#xff0c;2023年被标记为AI元年&#xff0c;大模型以其前所未有的影响力&#xff0c;重塑我们的日常生活和工作方式。从日常的问答对话到复杂的编程辅助&#xff0c;乃至创意图像生成&#xff0c;AI大模型展现出超…

嵌入式Linux系统编程 — 6.4 信号集

目录​​​​​​​ 1 信号集概念 2 sigemptyset、sigfillset初始化信号集 3 sigaddset、sigdelset向信号集中添加/删除信号 4 sigismember函数测试信号是否在信号集中 1 信号集概念 在Linux系统中&#xff0c;信号集&#xff08;signal set&#xff09;用于表示一组信号…

对标GPT-4o!不锁区、支持手机、免费使用,Moshi来啦!

7月4日凌晨&#xff0c;法国知名开源AI研究实验室Kyutai在官网发布了&#xff0c;具备看、听、说多模态大模型——Moshi。 Moshi功能与OpenAI在5月14日展示的最新模型GPT-4o差不多&#xff0c;可以听取人的语音提问后进行实时推理回答内容。但GPT-4o的语音模式要在秋天才能全面…

确认下单:购物车页面点击 去结算 按钮发起两个请求trade(显示购物车的商品信息和计算商品的总金额)findUserAddressList

文章目录 1、确认下单&#xff1a;购物车页面点击去结算1.1、在OrderController类中创建 trade 方法1.2、在CartController类中创建 checkedCartInfos1.3、CartServiceImpl 实现 checkedCartInfos的业务功能1.4、在service-cart-client模块下定义远程openFeign接口1.5、在SpzxO…

再次登榜,深兰科技荣膺全球独角兽企业500强

6月27&#xff5e;28日&#xff0c;《2024全球独角兽企业500强》榜单发布&#xff0c;深兰科技凭借在AI产业赋能和产品出海方面的出色表现&#xff0c;继2023年之后再次登榜。 《2024全球独角兽企业500强》评委会介绍&#xff0c;本届榜单的产生&#xff0c;是由“全球独角兽企…

flutter开发实战-Charles抓包设置,dio网络代理

flutter开发实战-Charles抓包设置 在开发过程中抓包&#xff0c;可以看到请求参数等数据&#xff0c;方便分析问题。flutter上使用Charles抓包设置。dio需要设置网络代理。 一、dio设置网络代理 在调试模式下需要抓包调试&#xff0c;所以需要使用代理&#xff0c;并且仅用H…