Java 第 06 课 507. 完美数 1437. 是否所有 1 都至少相隔 k 个元素
第六课
- [2540. 最小公共值](https://leetcode.cn/problems/minimum-common-value/)
- 507. 完美数
- 728. 自除数
- 1437. 是否所有 1 都至少相隔 k 个元素
- 1446. 连续字符
- 基础知识
2540. 最小公共值
class Solution {public int getCommon(int[] nums1, int[] nums2) {int m = nums1.length, n = nums2.length;int i = 0, j = 0;// while (i < m && j < n) {// if (nums1[i] == nums2[j]) return nums1[i];// if (nums1[i] > nums2[j]) j++;// else i++;// }for (int x : nums1) {while (j < n && nums2[j] < x) j++;if (j < n && nums2[j] == x) return x;}return -1;}
}
507. 完美数
Leetcode
class Solution:def checkPerfectNumber(self, num: int) -> bool:if num == 1: return False # 1 特别处理,不是完美数。res = 1 # 不包含 num 本身,先处理 1,因子是成对的 # for i in range(2, int(num**0.5)+1):# if num % i == 0:# res += i + num // i i = 2while i * i < num:if num % i == 0:res += i + num // i # 累计正因子和 i += 1return res == num
class Solution {public boolean checkPerfectNumber(int num) {if (num == 1) return false;int res = 1; // for (int i = 2; i <= Math.sqrt(num); i++)for (int i = 2; i * i < num; i++){if (num % i == 0) res += i + num / i;}// int i = 2;// while (i * i < num){// if (num % i == 0) res += i + num / i;// i ++;// }return res == num;}
}
728. 自除数
Leetcode
class Solution:def selfDividingNumbers(self, left: int, right: int) -> List[int]:def self_dividing(n):for d in str(n):if d == '0' or n % int(d) > 0: return Falsereturn True"""Alternate implementation of self_dividing:def self_dividing(n):x = nwhile x > 0:x, d = divmod(x, 10)if d == 0 or n % d > 0: return Falsereturn True"""ans = []for n in range(left, right + 1):if self_dividing(n): ans.append(n)return ans # Equals filter(self_dividing, range(left, right+1))
class Solution {public List<Integer> selfDividingNumbers(int left, int right) {List<Integer> res = new ArrayList();for (int n = left; n <= right; ++n) {if (selfDividing(n)) res.add(n);}return res;}public boolean selfDividing(int n) {// for (char c: String.valueOf(n).toCharArray()) {// if (c == '0' || (n % (c - '0') > 0))// return false;// }int x = n;while (x > 0) {int r = x % 10;x /= 10;if (r == 0 || (n % r) > 0) return false;}return true;}
}
1437. 是否所有 1 都至少相隔 k 个元素
Leetcode
class Solution:def kLengthApart(self, nums: List[int], k: int) -> bool:tmp = k # 处理第一个 1for i in range(len(nums)):if nums[i] == 1:if k > tmp: return Falsetmp = 0 # 遇到 1 从新记数else: tmp += 1return True# left = -inf# for i in range(len(nums)):# if nums[i] == 1:# if i - left - 1 < k: return False# left = i# return True
class Solution {public boolean kLengthApart(int[] nums, int k) {// Integer.MIN_VALUE = -2^31, Integer.MAX_VALUE = 2^31 - 1// -(-2^31) = -2^31 因为 2^31 越界了,解决办法 + 1。// int left = Integer.MIN_VALUE + 1; int left = -k-1; // left <= i -k-1 则 i-left-1 >= kfor (int i = 0; i < nums.length; i++){if (nums[i] == 1) {if (i - left - 1 < k) return false;left = i;} }return true;}
}
1446. 连续字符
Leetcode
class Solution:def maxPower(self, s: str) -> int: # res = tmp = 1# x = s[0]# for i in range(1, len(s)):# if s[i] == x:# tmp += 1# else:# res = max(res, tmp)# x = s[i]# tmp = 1 # return max(res, tmp)## 双指针res, slow, n = 1, 0, len(s) for i in range(1, n):if s[i] != s[slow]:res = max(res, i - slow)slow = ires = max(res, n - slow) return res
class Solution {public int maxPower(String s) {int res = 1, slow = 0;// s += "*"; // 添加哨兵for (int i = 1; i < s.length(); i++){if (s.charAt(i) != s.charAt(i-1)){res = Math.max(res, i - slow);slow = i;}}res = Math.max(res, s.length() - slow); // 处理末尾连续的字符,可添加哨兵。return res;}
}
基础知识
计算两个下标之间的元素个数
边界处理
Java 第 06 课 507. 完美数 1437. 是否所有 1 都至少相隔 k 个元素相关推荐
- Java实现 LeetCode 507 完美数
507. 完美数 对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为"完美数". 给定一个 整数 n, 如果他是完美数,返回 True,否则返回 False ...
- LeetCode Algorithm 507. 完美数
507. 完美数 Ideas 把所有的约数全都加起来就行了,也没啥. Code Python class Solution:def checkPerfectNumber(self, num: int) ...
- 507. 完美数-c语言
507. 完美数 对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」. 给定一个 整数 n, 如果是完美数,返回 true:否则返回 false. 示例 1: 输 ...
- Python Leetcode(507.完美数)
Python Leetcode(507.完美数) 对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为"完美数". 给定一个 正整数 n, 如果他是完美数,返回 ...
- LeetCode 507. 完美数
1. 题目 对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为"完美数". 给定一个 整数 n, 如果他是完美数,返回 True,否则返回 False 示例: ...
- leetcode 507 完美数
题目: We define the Perfect Number is a positive integer that is equal to the sum of all its positive ...
- Leetcode 507: 完美数
题目描述: 对于一个 正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为"完美数". 给定一个 整数 n, 如果他是完美数,返回 True,否则返回 False 示例: ...
- java定义一个类显示没有_Java 中的每个类都至少有一个构造方法,一个类中如果没有定义构造方法,系统会自动为这个类创建一个默认的构造方法。_学小易找答案...
[单选题]关于 Java 语言叙述错误的是( ). [判断题]类中 static 修饰的变量或方法,可以使用类名或对象的引用变量访问. [命名题]命名下列化合物, [单选题]急性胰腺炎的主要临床表现是 ...
- leetcode 507. 完美数(Java版)
题目 https://leetcode-cn.com/problems/perfect-number/ 题解 枚举 n 的所有因数,并计算它们的和.(或者逆向思路:枚举 n 的所有因数,用 n 分别减 ...
最新文章
- bzoj2959 长跑
- C++ STL快速入门
- 一个已经存在 10 年,却被严重低估的库
- 深入理解Spark 2.1 Core (十四):securityManager 类源码分析
- 内存、数据结构之栈和堆的区别?
- 把日志文件从Linux服务器拷贝到Windows上
- wgs utm java,Java,将经纬度转换为UTM
- Golang笔记——反射
- android 崩溃日志捕获,安卓Java崩溃的捕获和日志记录
- CentOS6.5配置网易163做yum源
- 各种隐藏WebShell、创建、删除畸形目录、特殊文件名的方法
- Node.JS EXCEL 读取操作
- 电脑的记事本如何显示行数
- 解决Strings must use singlequote方法以及eslint与本地格式化规则起冲突时的解决办法
- mov和mp4格式哪个好_Mac版dvd格式转换器哪个好用?Mac上最好用的dvd格式转换器推荐...
- linux系统安装佳能打印机驱动,如何在Debian和Debian系统上安装(Canon)打印机
- 如何加声调口诀_汉语拼音声调标注口诀 涨知识了
- 亚马逊用AI监控和解雇员工,这会是大势所趋吗?
- 日有所思(6)——直流电机注意点
- kali2021安装GVM(openVAS)