摘要: 快乐数(环 快慢指针) 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 Tru 阅读全文
posted @ 2020-05-02 17:49 YH_Simon 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 暴力解法 思路很简单,依次计算从各个字符开始的无重复子串的长度,时间复杂度O(n^2) java / 使用滑动窗口 O(n) 6ms 85% 40M 5% @param s @return / public int lengthOfLongestSubstring3(String s) { int 阅读全文
posted @ 2020-05-02 17:48 YH_Simon 阅读(168) 评论(0) 推荐(0) 编辑
摘要: ​ 第一次解题思路: 遍历数组,将数字和出现的次数装到map集合 遍历map集合,取到题目要求值 (其实不能用Map(空间复杂度O(n))) 优化 解题思路:分组位运算 ​ 题目要求时间复杂度O(n),空间复杂度为O(1),因此不能用map(空间复杂度O(n)) ​ 代码如下: 阅读全文
posted @ 2020-05-02 17:46 YH_Simon 阅读(805) 评论(0) 推荐(0) 编辑
摘要: 暴力求解 优化 解题思路 准备两个指针,一个指向开头,一个指向结尾,此时容器的底最大的 随着指针向内移动,会造成容器的底变小,在这种情况下想让容器盛水变多,就只能在容器的嗷下功夫。 那我们如何决策哪个指针移动呢?我们能够发现不管是左指针向右移一位,还是右指针想左移一位,容器的底都是一样的,都比原来减 阅读全文
posted @ 2020-05-02 17:41 YH_Simon 阅读(109) 评论(0) 推荐(0) 编辑