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

个人建网站允许吗手机怎么访问微网站

个人建网站允许吗,手机怎么访问微网站,小游戏开发软件,合肥手机网站建设链接快乐数题序号202题型数组解题方法哈希表难度简单熟练度✅✅✅✅ 题目 编写一个算法来判断一个数 n 是不是快乐数。 [快乐数] 定义为#xff1a; 对于一个正整数#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1#xff0…链接快乐数题序号202题型数组解题方法哈希表难度简单熟练度✅✅✅✅ 题目 编写一个算法来判断一个数 n 是不是快乐数。 [快乐数] 定义为 对于一个正整数每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true 不是则返回 false 。 示例 1 输入n 19 输出true 解释 12 92 82 82 22 68 62 82 100 12 02 02 1 示例 2 输入n 2 输出false 提示 1 n 231 - 1 题解 核心思想使用哈希表来记录已经出现过的数字如果在计算过程中某个数字重复出现说明进入了循环返回 false如果最终计算结果为 1返回 true。复杂度时间复杂度O(logn)因为每次计算下一个数的时间复杂度为 O(logn)空间复杂度O(1)不需要额外的存储空间。c 实现算法 class Solution { public:bool isHappy(int n) {unordered_setint seen; // 用于存储已经出现过的数字检测循环//如果 find(n) 返回 seen.end()表示 n 不存在于集合中查找失败。//如果 find(n) 返回的迭代器不是 seen.end()表示 n 存在于集合中查找成功。while (n ! 1 seen.find(n) seen.end()) {seen.insert(n); // 将当前数字加入集合n getNext(n); // 计算下一步的平方和}return n 1; // 如果 n 1返回 true否则进入循环返回 false}private:int getNext(int n) {int sum 0;while (n 0) {int digit n % 10; // 提取个位数,如果 n 123则 digit 123 % 10 3sum digit * digit; // 累加平方n / 10; // 去掉个位,如果 n 123执行 n / 10 后n 12}return sum;} };算法推演 初始值 输入数字n 2 seen 集合空集合 {} 第一步计算平方和 当前数字n 2 计算平方和 224 更新数字n 4 检查 4 是否在 seen 集合中否将 4 加入集合。 集合更新为{2} 第二步计算平方和 当前数字n 4 计算平方和 4216 更新数字n 16 检查 16 是否在 seen 集合中否将 16 加入集合。 集合更新为{2, 4} 第三步计算平方和 当前数字n 16 计算平方和 126237 更新数字n 37 检查 37 是否在 seen 集合中否将 37 加入集合。 集合更新为{2, 4, 16} 第四步计算平方和 当前数字n 37 计算平方和 327258 更新数字n 58 检查 58 是否在 seen 集合中否将 58 加入集合。 集合更新为{2, 4, 16, 37} 第五步计算平方和 当前数字n 58 计算平方和 528289 更新数字n 89 检查 89 是否在 seen 集合中否将 89 加入集合。 集合更新为{2, 4, 16, 37, 58} 第六步计算平方和 当前数字n 89 计算平方和 8292145 更新数字n 145 检查 145 是否在 seen 集合中否将 145 加入集合。 集合更新为{2, 4, 16, 37, 58, 89} 第七步计算平方和 当前数字n 145 计算平方和 12425242 更新数字n 42 检查 42 是否在 seen 集合中否将 42 加入集合。 集合更新为{2, 4, 16, 37, 58, 89, 145} 第八步计算平方和 当前数字n 42 计算平方和 422220 更新数字n 20 检查 20 是否在 seen 集合中否将 20 加入集合。 集合更新为{2, 4, 16, 37, 58, 89, 145, 42} 第九步计算平方和 当前数字n 20 计算平方和 22024 更新数字n 4 检查 4 是否在 seen 集合中是说明进入循环。 结论 输入 2 会进入循环无法到达 1因此 2 不是一个快乐数。 循环检测 通过集合 seen我们检测到了循环路径 2 → 4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 (循环) 这是算法检测非快乐数的重要机制避免了死循环。 c 完整demo #include iostream #include unordered_set using namespace std;class Solution { public:bool isHappy(int n) {unordered_setint seen; // 用于存储已经出现过的数字检测循环//如果 find(n) 返回 seen.end()表示 n 不存在于集合中查找失败。//如果 find(n) 返回的迭代器不是 seen.end()表示 n 存在于集合中查找成功。while (n ! 1 seen.find(n) seen.end()) {seen.insert(n); // 将当前数字加入集合n getNext(n); // 计算下一步的平方和}return n 1; // 如果 n 1返回 true否则进入循环返回 false}private:int getNext(int n) {int sum 0;while (n 0) {int digit n % 10; // 提取个位数,如果 n 123则 digit 123 % 10 3sum digit * digit; // 累加平方n / 10; // 去掉个位,如果 n 123执行 n / 10 后n 12}return sum;} };int main() {Solution solution;int n 2;if (solution.isHappy(n)) {cout n is a happy number! endl;} else {cout n is not a happy number! endl;}return 0; }
http://www.dnsts.com.cn/news/216756.html

相关文章:

  • 购物网站服务器带宽wordpress仿落网
  • 天津地区网站建设php做网站速成
  • 做网站多少钱角西宁君博特惠景翔物流网站建设公司
  • 成都专业网站设计免费咨询移动商城网站建设 深圳
  • 台州卓远做网站好不好苏州网站建设企业网站制作
  • 网站ip流量查询罗源网站建设
  • 促销方法100种站长之家seo查找
  • 网站建设 书籍下载国家建设部网站证书查询
  • 电商网站国内外需求分析广州最新新闻头条
  • 做网站一般用什么系统网站无法发送邮件wordpress
  • 如何建设和优化网站青岛 网站备案
  • 网页制作公司网站做网站的知名公司
  • 门户网站的建设费用小程序模板做视频网站
  • 网站建设教程设最优秀的无锡网站建设
  • 佛山网站建设电话wordpress 菜单 间距
  • 做网站wordpress网站建设基础教案
  • 网站搭建后提示建设中设计公司首页
  • 湖南省做网站的营销内容包括哪些方面
  • 网站建设代码题学生简单网站制作教程
  • 做企业网站 空间怎么买德州口碑好的网站制作公司
  • 主机宝 建设网站个人主页源码下载
  • 怎样给网站或者商品做推广中企动力销售陪酒多吗
  • 做钢材的网站福州网站设计服务
  • 做响应式网站怎么设计wordpress 七牛插件代码
  • 营销型手机网站火鸟门户系统优点
  • 济南网站制网页设计作品文字分析
  • 英迈思网站建设苏州市工程造价信息网
  • 个人做网站设计电销客户资源购买
  • 学建站论坛wordpress伪静态apache
  • 网站设计与制作简单吗WordPress离线博客