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

每日算法——快乐数、两数之和

202. 快乐数

class Solution {
public:bool isHappy(int n) {unordered_set<int> result_set;while(true){int sum = 0;while(n>0){sum+= (n%10)*(n%10);n/=10;}if(sum==1){return true;}else{if(result_set.find(sum) != result_set.end()){return false;}result_set.insert(sum);}n=sum;}}
};

由于题目中明确了只有循环和==1两种情况,使用快慢指针法同样可以求解:

class Solution {
public:int bitSquareSum(int n) {int sum = 0;while(n > 0){int bit = n % 10;sum += bit * bit;n = n / 10;}return sum;}bool isHappy(int n) {int slow = n, fast = n;do{slow = bitSquareSum(slow);fast = bitSquareSum(fast);fast = bitSquareSum(fast);}while(slow != fast);return slow == 1;}
};

两数之和

时间复杂度为o(n)的解法:使用hash map(存储键值对);

可以利用的细节:

由于是两数之和,根据当前遍历到的值,去map中找是否有target- nums[i]的值即可

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {std::unordered_map<int,int> set;for(int i = 0;i<nums.size();i++){auto iter = set.find(target -nums[i]);if(iter != set.end()){return {iter->second,i};}set.insert(pair<int,int>(nums[i],i));}return {};}
};

相关文章:

  • C++学习:六个月从基础到就业——STL算法(二)排序与变序算法
  • 《AI大模型应知应会100篇》 第36篇:RAG技术入门:检索增强生成原理及实现
  • 施磊老师基于muduo网络库的集群聊天服务器(六)
  • mybatis log convert使用
  • Java 高频面试题解析
  • 【android bluetooth 协议分析 06】【l2cap详解 9】【L2cap通道生命周期】
  • 【MobaXterm】---修改 MobaXterm 终端 默认字体和大小 保真
  • QSPI flash xip模式运行
  • 四、Python编程基础04
  • 《宝可梦明耀之星》正式登陆中国大陆!4月15日起陆续上市!
  • 母婴店商城小程序制作哪家强?告别传统经营,拥抱线上新机遇
  • TypeScript 开发实战:如何安全替换字符串中的关键字
  • 阿里云99机器总是宕机,实测还是磁盘性能差
  • 多路转接epoll原理详解
  • 应用信息1.13.0发布
  • verilog和system verilog常用数据类型以及常量汇总
  • SVN钩子脚本获取日志中文乱码解决办法
  • Android 混合开发实战:统一 View 与 Compose 的浅色/深色主题方案
  • 嵌入模型(Embedding Models)原理详解:从Word2Vec到BERT的技术演进
  • MyBatis操作数据库---从入门到理解
  • 当哲学与戏剧作为一种生活方式——《人生六戏》分享会
  • 临汾攻坚PM2.5:一座曾经“爆表”城市的空气治理探索
  • 2024年度全国十大考古新发现公布,武王墩一号墓等入选
  • 乌代表团与美特使在伦敦举行会谈,双方同意继续对话
  • 继微软之后,亚马逊也放缓人工智能数据中心计划
  • 中国政府援缅第八批紧急人道主义地震救灾物资抵达缅甸