[Leedcode][JAVA][第202题][快乐数]

【问题描述】

编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为  1,那么这个数就是快乐数。如果 n 是快乐数就返回 True ;不是,则返回 False 。示例:输入:19
输出:true
解释:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1

【解答思路】

1. HashSet

在这里插入图片描述

时间复杂度:O(N^2) 空间复杂度:O(1)

public boolean isHappy(int n) {HashSet  set= new HashSet();while(n!=1){n = powSum(n);if(set.contains(n)){return false;}else{set.add(n);}} return true;}//计算平方和int powSum(int n){int sum = 0 ;while(n!=0){sum += Math.pow(n%10,2);n /= 10 ; }return sum;}
2. 快慢指针

在这里插入图片描述

时间复杂度:O(N) 空间复杂度:O(1)

public class Solution {public int squareSum(int n) {int sum = 0;while(n > 0){int digit = n % 10;sum += digit * digit;n /= 10;}return sum;}public boolean isHappy(int n) {int slow = n, fast = squareSum(n);// 当是快乐数的时候 while (slow != fast){slow = squareSum(slow);fast = squareSum(squareSum(fast));};return slow == 1;}
}

【总结】

1. 历经一个半月 终于不看题解 一次AC 不愧为快乐数 再接再厉
2. 快慢指针的思想需要掌握
3. HashSet

(1)增加
public boolean add(E e);
(2)删除
public boolean remove(Object j);
(3)对比查找
public boolean contains(Object j);
(4)清空集合
public void clear();
(5)获取长度
public int size();

参考链接:https://leetcode-cn.com/problems/happy-number/solution/kuai-le-de-zhi-shi-dian-zeng-jia-liao-by-sweetiee/
参考链接:https://leetcode-cn.com/problems/happy-number/solution/kuai-le-shu-by-leetcode-solution/

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

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

相关文章

Java类加载机制的理解

算上大学,尽管接触Java已经有4年时间并对基本的API算得上熟练应用,但是依旧觉得自己对于Java的特性依然是一知半解。要成为优秀的Java开发人员,需要深入了解Java平台的工作方式,其中类加载机制和JVM字节码这样的核心特性。今天我将…

[剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]

【问题描述】[第3题][无重复字符的最长字串] 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2:输入: "bb…

java学习(172): 使用class实现反射编程,创建对象

//class反射编程 //定义一个学生类 public class test124 {public String name;protected int age;double height;private double money;public test124(String name,Integer age){this.namename;this.ageage;}public test124(String name,int age,double money){this.namename…

关于mysql中GROUP_CONCAT函数的使用

偶然看到公司存储过程中有个字符串拼接的函数,改bug过程中使用到了,还挺有用的,于是记录下来方便记忆,帮助有需要的人。 这是我需要整理的串,他是调用了一个存储过程,传入组织机构的id和迭代层数&#xff0…

java学习(173):class反射编程方法

//class反射编程 //定义一个学生类 public class test124 {public String name;protected int age;double height;private double money;public test124(String name,Integer age){this.namename;this.ageage;}public test124(String name,int age,double money){this.namename…

[剑指offer]面试题第[25]题[Leedcode][JAVA][第21题][合并两个有序链表]

【问题描述】[简单] 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例:输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4【解答思路】 1. 非递归 时间复杂度&…

Windos下navcat连接虚拟机中的mysql

进入mysql命令行, 使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:  # mysql -u root -proot   mysql>GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY youpassword WITH GRAN…

第二十三期:大规模网站架构?你是否熟悉?

大规模网站架构 •PHP –facebook,yahoo •Java –taobao,163 •Python –google •.NET –MySpace 语言不是可伸缩性的关键,架构才是关键 网站架构的目标 •高可用性(High Availability) •可伸缩性(Scalability) •高性能(High Performance) 事务 …

[Leedcode][JAVA][第98题][验证二叉搜索树]

【问题描述】[第98题][验证二叉搜索树][中等] 给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜…

图解CPU?

了解CPU 芯片组 CPU微观图 Cache层次结构 Cache-续 Xeon 5600系列CPU CPU内部各部件访问速度 False sharing问题 Cache lines Intel Sandy Bridge来了 CPU拓扑结构图 Cache相关硬件事件

c语言获取dll文件路径,C语言URLDownloadToFile获取文件下载进度

URLDownloadToFile是urlmon.dll提供的网络操作API,可以用于从指定的URL下载文件到本地,在C中通过类很容易实现下载进度的获取,今天需要在C语言中使用到这个函数,这里记录一下使用方法。该函数的定义如下所示。HRESULT URLDownload…

HOG特征人体检测

1. 引言 HOG(Histogram of Oriented Gradient),即方向梯度直方图。它通过计算和统计局部区域的梯度方向直方图来构成特征,一般与SVM分类器结合用于目标的图像识别。由于人体姿势和外表的多变,在图像中检测人体是一项具…

[Leedcode][JAVA][第45题][跳跃游戏 II][贪心算法]

【问题描述】[Leedcode][JAVA][第45题][跳跃游戏 II] 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。【解答思路】 1. 动态规划 超时 第 1 步&…

大型动态应用系统平台系统架构?这些大家并不陌生

大型动态应用系统平台系统架构[多图] 动态应用,是相对于网站静态内容而言,是指以c/c、php、Java、perl、.net等服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通常与数据库系统、缓存系统、分布式…

c语言round函数能四舍五入吗,怎么利用round函数实现四舍五入?

Excel强大的制表功能让很多人都对它无比依赖,它也早已成为日常必备的工具。我们在办公室工作时,经常会遇到要用 Excel处理数字的情况,需要对其进行四舍五入。那么实现这一操作,我们需要使用哪些Excel函数呢?今日小编就…

InnoDB 事务/锁/多版本分析?你了解多少?

目录 • InnoDB事务 – 事务结构/功能 – XA事务/Group Commit – mini-transaction• InnoDB锁 – 锁结构/类型/功能 – 锁等待/死锁检测 – 自增序列锁(autoinc lock) – 半一致读(semi-consistent read) – 隐式锁(implicit lock) • InnoDB多版本 – ReadView –…

[剑指offer]面试题第[42]题[Leedcode][JAVA][第53题][最大子序和][动态规划][贪心][分治]

【问题描述】[第53题][最大子序和][中等] 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大…

[Leedcode][JAVA][第983题][最低票价][动态规划]

【问题描述】[第983题][最低票价][中等] 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为…

[Leedcode][JAVA][第572题][另一个树的子树]

【问题描述】 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1: 给定的树 s:3/ \4 5/ \1 2 给定的树 t:4 / \1 2 返回…

LVS在淘宝环境中的应用

目录 1. LVS-简介 2. LVS-问题 3. LVS-fullnat 4. LVS-synproxy 5. LVS-cluster 6. LVS-performance 7. LVS-todo list 疑问引入:用户访问淘宝,访问哪台apache服务器 传统做法:DNS服务 四个问题 Q1:apache2 down,remove生…