Math
Math
野生程序猿RW
2020年毕业于台湾科技大学(Taiwan Tech),后端开发工程师一枚。
展开
-
812. 最大三角形面积
812. 最大三角形面积class Solution { public double largestTriangleArea(int[][] points) { int n = points.length; double ret = 0.0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { for (i原创 2022-05-15 21:16:44 · 134 阅读 · 0 评论 -
357. 统计各位数字都不同的数字个数(排列组合)
357. 统计各位数字都不同的数字个数给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10n 。示例 1:输入:n = 2输出:91解释:答案应为除去 11、22、33、44、55、66、77、88、99 外,在 0 ≤ x < 100 范围内的所有数字。 示例 2:输入:n = 0输出:1// n = 1 0到9 10位数// n = 2 10 + 9 X 9 (第一个9是1-9,第二个9是0-9),第一个9因为不能原创 2022-04-11 22:29:39 · 291 阅读 · 0 评论 -
204. 计数质数
204. 计数质数给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。1和2不是质数class Solution { public int countPrimes(int n) { int ans = 0; for (int i = 2; i < n; ++i) { ans += isPrime(i) ? 1 : 0; } return ans; } public boolea原创 2022-04-05 16:52:13 · 310 阅读 · 0 评论 -
判断一个数是否是素数(质数)
质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。判断一个数是否是素数(质数)import java.util.Scanner;public class Test { public static void main(String[] args) { boolean isPrime = true; Scanner sc = new Scanner(System.in); System.out.println原创 2022-02-13 18:47:01 · 220 阅读 · 0 评论 -
539. 最小时间差(抽屉原理)
539. 最小时间差给定一个 24 小时制(小时:分钟 "HH:MM")的时间列表,找出列表中任意两个时间的最小时间差并以分钟数表示。示例 1:输入:timePoints = ["23:59","00:00"]输出:1示例 2:输入:timePoints = ["00:00","23:59","00:00"]输出:0提示:2 <= timePoints <= 2 * 104timePoints[i] 格式为 "HH:MM"class Solution { pu原创 2022-01-18 11:21:01 · 383 阅读 · 0 评论 -
382. 链表随机节点(蓄水池取样)
382. 链表随机节点给你一个单链表,随机选择链表的一个节点,并返回相应的节点值。每个节点 被选中的概率一样 。实现 Solution类:Solution(ListNode head)使用整数数组初始化对象。int getRandom() 从链表中随机选择一个节点并返回该节点的值。链表中所有节点被选中的概率相等。示例:输入["Solution", "getRandom", "getRandom", "getRandom", "getRandom", "getRandom"][[[1, 2,原创 2022-01-16 17:51:20 · 140 阅读 · 0 评论 -
384. 打乱数组
384. 打乱数组给你一个整数数组 nums,设计算法来打乱一个没有重复元素的数组。实现 Solution class:Solution(int[] nums) 使用整数数组 nums 初始化对象int[] reset()重设数组到它的初始状态并返回int[] shuffle()返回数组随机打乱后的结果示例:输入["Solution", "shuffle", "reset", "shuffle"] [[[1, 2, 3]], [], [], []]输出[null, [3, 1, 2],原创 2021-11-22 16:58:02 · 176 阅读 · 0 评论 -
397. 整数替换
397. 整数替换给定一个正整数n ,你可以做如下操作:如果 n 是偶数,则用 n / 2替换n 。如果n是奇数,则可以用 n + 1或n - 1替换 n 。n 变为 1所需的最小替换次数是多少?示例 1:输入:n = 8输出:3解释:8 -> 4 -> 2 -> 1示例 2:输入:n = 7输出:4解释:7 -> 8 -> 4 -> 2 -> 1或 7 -> 6 -> 3 -> 2 -> 1示例 3:输入:原创 2021-11-19 15:33:10 · 218 阅读 · 0 评论 -
598. 范围求和 II
598. 范围求和 II给定一个初始元素全部为0,大小为 m*n 的矩阵 M以及在 M上的一系列更新操作。操作用二维数组表示,其中的每个操作用一个含有两个正整数a和b的数组表示,含义是将所有符合 0 <= i < a以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。Input: m = 3, n = 3, ops = [[2,2],[3,3]]Output: 4Explanation:原创 2021-11-07 13:27:14 · 40 阅读 · 0 评论 -
50. Pow(x, n)
50. Pow(x, n)实现 pow(x, n) ,即计算x 的 n 次幂函数(即,xn)。xnx^{n}xn示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2−2=122=14=0.252^{-2} = \frac{1}{2^{2}} = \frac{1}{4} =0.25 2−2=221原创 2021-11-04 16:07:21 · 53 阅读 · 0 评论 -
633. 平方数之和
ss s原创 2021-11-04 11:31:31 · 46 阅读 · 0 评论 -
69. Sqrt(x) 和 367. 有效的完全平方数(二分查找)
367. 有效的完全平方数给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回false 。进阶:不要 使用任何内置的库函数,如 sqrt。class Solution { public boolean isPerfectSquare(int num) { int l = 1, r = num; while (l <= r) { long mid = (l + r) >>原创 2021-11-04 09:52:36 · 56 阅读 · 0 评论 -
169. 多数元素(摩尔投票法)
169. 多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2class Solution { public int majorityElement(int[] nums) { HashMap<Integer, Integer> cnt = n原创 2021-10-22 21:03:54 · 68 阅读 · 0 评论 -
229. 求众数 II(摩尔投票法)
229. 求众数 II给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋次的元素。输入:[3,2,3]输出:[3]示例 2:输入:nums = [1]输出:[1]示例 3:输入:[1,1,1,3,3,2,2,2]输出:[1,2]思路1因为只是需要占用1 / 3所以,至多有2个数字,所以我们可以找出出现次数最多的两个数字,再统计数目,看是否符合条件class Solution { public List<Integer> majorityEl原创 2021-10-22 19:45:55 · 98 阅读 · 0 评论 -
66. 加一
66. 加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]class S原创 2021-10-21 22:03:01 · 45 阅读 · 0 评论 -
29. 两数相除
29. 两数相除给定两个整数,被除数dividend和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend除以除数 divisor得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入: dividend = 10, divisor = 3输出: 3解释: 10/3 = truncate(3.33333..) = trunca原创 2021-10-13 01:38:55 · 57 阅读 · 0 评论 -
441. Arranging Coins,先加1再除以2是为了让中间值靠右,因为在后序对右边的值处理是 right = mid - 1
441. Arranging CoinsYou have n coins and you want to build a staircase with these coins. The staircase consists of k rows where the ith row has exactly i coins. The last row of the staircase may be incomplete.Given the integer n, return the number of com原创 2021-10-10 17:28:24 · 62 阅读 · 0 评论 -
166. 分数到小数
166. 分数到小数给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以 字符串形式返回小数 。如果小数部分为循环小数,则将循环的部分括在括号内。如果存在多个答案,只需返回 任意一个 。对于所有给定的输入,保证 答案字符串的长度小于 104 。示例 1:输入:numerator = 1, denominator = 2输出:"0.5"示例 2:输入:numerator = 2, denominator = 1输出:"2"示例 3:输入:num原创 2021-10-03 11:33:09 · 65 阅读 · 0 评论 -
FAANG面试题!!!470. 用 Rand7() 实现 Rand10()
470. 用 Rand7() 实现 Rand10()已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。不要使用系统的 Math.random() 方法。示例 1:输入: 1输出: [7]示例 2:输入: 2输出: [8,4]示例 3:输入: 3输出: [8,1,10]/** * The rand7() API is already defined in the parent class Sol原创 2021-09-05 21:51:59 · 43 阅读 · 0 评论 -
789. Escape The Ghosts(曼哈顿距离)
789. Escape The GhostsYou are playing a simplified PAC-MAN game on an infinite 2-D grid. You start at the point[0, 0], and you are given a destination point target = [xtarget, ytarget], which you are trying to get to. There are several ghosts on the map w原创 2021-08-22 15:22:28 · 55 阅读 · 0 评论