当前位置: 首页 > news >正文

LeetCode :LCR 173. 点名


外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

🔥个人主页guoguoqiang. 🔥专栏leetcode刷题

Alt


在这里插入图片描述
LeetCode :LCR 173. 点名

这个题就是缺失的数字,我们可以通过三种方式来解决这个问题。
1.可以通过位异或的方式来找到这个数(相同的数异或为0)

class Solution {
public:int takeAttendance(vector<int>& records) {int ret=0;for(auto n:records) ret^=n;//遍历整个数组for(int i=0;i<=records.size();i++){//遍历全部数ret^=i;}return ret;}
};

2.通过哈希表来实现(观察这个题中的数据可以通过使用数组来实现)

class Solution {
public:int takeAttendance(vector<int>& records) {int hash[10001]={0};for(auto ch:records) hash[ch]++;for(int i=0;i<=records.size();i++){//遍历数if(!hash[i]) return i;//如果不在哈希表中说明就是缺失的那个值。}return -1;//leetcode的检查机制}
};

3.二分查找

class Solution {
public:int takeAttendance(vector<int>& records) {int left=0,right=records.size()-1;while(left<right){int mid=left+(right-left)/2;if(records[mid]==mid) left=mid+1;//如果相等则证明不是要找这个数跳过else right=mid;}if(records[left]!=left) return left;//缺失值在数组中间else return left+1;//缺失值在数组的最后一个位置}
};

4.暴力搜索

class Solution {
public:int takeAttendance(vector<int>& records) {if(records[0]==1) return 0;int n=records.size();for(int i=0;i<n;i++){if(records[i]!=i) return i;}return records.size();}
};

5.数学(高斯求和公式)

class Solution {
public:int takeAttendance(vector<int>& records) {int n=records.size();int sum=0;for(auto &x:records){sum+=x;}return (n+1-1)*(n+1)/2-sum;}
};

http://www.mrgr.cn/news/51267.html

相关文章:

  • 进程信号大总结(整理)
  • React Agent 自定义实现
  • STM32-USART串口协议
  • 奖金——Topsort
  • 《RECONX: RECONSTRUCT ANY SCENE FROM SPARSEVIEWS WITH VIDEO DIFFUSION MODEL》论文阅读
  • 记录 ruoyi-vue-plus在linux 部署遇到的问题
  • 【Python爬虫实战】XPath与lxml实现高效XML/HTML数据解析
  • MySQL索引优化
  • 【Next.js 项目实战系列】03-查看 Issue
  • jmeter响应断言放进csv文件遇到的问题
  • 第二课:Python入门学习之开发工具的安装
  • 专题:数组(已完结)
  • 2024全国大数据与计算智能挑战赛火热报名中!
  • 【优选算法】(第四十四篇)
  • 数据结构之红黑树的实现
  • 1 -《本地部署开源大模型》如何选择合适的硬件配置
  • AI全栈大模型项目实战,人工智能,多模态大模型,微调技术训练营,大模型多场景实战
  • 算力基础篇:从零开始了解算力
  • 张驰咨询:假如国人都成为六西格玛黑带,中国将会怎样?
  • C++之《剑指offer》学习记录(4):赋值运算符函数