From 756e99ee4e5b9e1f98df5434b99b0ce350c333be Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Tue, 14 May 2019 22:32:30 +0800 Subject: [PATCH] auto commit --- docs/notes/Leetcode 题解 - 数学.md | 70 +++++++++++++++--------------- notes/Leetcode 题解 - 数学.md | 70 +++++++++++++++--------------- 2 files changed, 68 insertions(+), 72 deletions(-) diff --git a/docs/notes/Leetcode 题解 - 数学.md b/docs/notes/Leetcode 题解 - 数学.md index fdf9879a..0b8946dd 100644 --- a/docs/notes/Leetcode 题解 - 数学.md +++ b/docs/notes/Leetcode 题解 - 数学.md @@ -1,30 +1,28 @@ * [素数分解](#素数分解) * [整除](#整除) - * [最大公约数最小公倍数](#最大公约数最小公倍数) - * [生成素数序列](#生成素数序列) - * [最大公约数](#最大公约数) - * [使用位操作和减法求解最大公约数](#使用位操作和减法求解最大公约数) +* [最大公约数最小公倍数](#最大公约数最小公倍数) + * [1. 生成素数序列](#1-生成素数序列) + * [2. 最大公约数](#2-最大公约数) + * [3. 使用位操作和减法求解最大公约数](#3-使用位操作和减法求解最大公约数) * [进制转换](#进制转换) - * [7 进制](#7-进制) - * [16 进制](#16-进制) - * [26 进制](#26-进制) + * [1. 7 进制](#1-7-进制) + * [2. 16 进制](#2-16-进制) + * [3. 26 进制](#3-26-进制) * [阶乘](#阶乘) - * [统计阶乘尾部有多少个 0](#统计阶乘尾部有多少个-0) + * [1. 统计阶乘尾部有多少个 0](#1-统计阶乘尾部有多少个-0) * [字符串加法减法](#字符串加法减法) - * [二进制加法](#二进制加法) - * [字符串加法](#字符串加法) + * [1. 二进制加法](#1-二进制加法) + * [2. 字符串加法](#2-字符串加法) * [相遇问题](#相遇问题) - * [改变数组元素使所有的数组元素都相等](#改变数组元素使所有的数组元素都相等) - * [解法 1](#解法-1) - * [解法 2](#解法-2) + * [1. 改变数组元素使所有的数组元素都相等](#1-改变数组元素使所有的数组元素都相等) * [多数投票问题](#多数投票问题) - * [数组中出现次数多于 n / 2 的元素](#数组中出现次数多于-n--2-的元素) + * [1. 数组中出现次数多于 n / 2 的元素](#1-数组中出现次数多于-n--2-的元素) * [其它](#其它) - * [平方数](#平方数) - * [3 的 n 次方](#3-的-n-次方) - * [乘积数组](#乘积数组) - * [找出数组中的乘积最大的三个数](#找出数组中的乘积最大的三个数) + * [1. 平方数](#1-平方数) + * [2. 3 的 n 次方](#2-3-的-n-次方) + * [3. 乘积数组](#3-乘积数组) + * [4. 找出数组中的乘积最大的三个数](#4-找出数组中的乘积最大的三个数) @@ -40,13 +38,13 @@ 如果 x 整除 y(y mod x == 0),则对于所有 i,mi <= ni。 -## 最大公约数最小公倍数 +# 最大公约数最小公倍数 x 和 y 的最大公约数为:gcd(x,y) = 2min(m0,n0) \* 3min(m1,n1) \* 5min(m2,n2) \* ... x 和 y 的最小公倍数为:lcm(x,y) = 2max(m0,n0) \* 3max(m1,n1) \* 5max(m2,n2) \* ... -## 生成素数序列 +## 1. 生成素数序列 [204. Count Primes (Easy)](https://leetcode.com/problems/count-primes/description/) @@ -70,7 +68,7 @@ public int countPrimes(int n) { } ``` -### 最大公约数 +## 2. 最大公约数 ```java int gcd(int a, int b) { @@ -86,7 +84,7 @@ int lcm(int a, int b) { } ``` -## 使用位操作和减法求解最大公约数 +## 3. 使用位操作和减法求解最大公约数 [编程之美:2.7](#) @@ -122,7 +120,7 @@ public int gcd(int a, int b) { # 进制转换 -## 7 进制 +## 1. 7 进制 [504. Base 7 (Easy)](https://leetcode.com/problems/base-7/description/) @@ -153,7 +151,7 @@ public String convertToBase7(int num) { } ``` -## 16 进制 +## 2. 16 进制 [405. Convert a Number to Hexadecimal (Easy)](https://leetcode.com/problems/convert-a-number-to-hexadecimal/description/) @@ -186,7 +184,7 @@ public String toHex(int num) { } ``` -## 26 进制 +## 3. 26 进制 [168. Excel Sheet Column Title (Easy)](https://leetcode.com/problems/excel-sheet-column-title/description/) @@ -214,7 +212,7 @@ public String convertToTitle(int n) { # 阶乘 -## 统计阶乘尾部有多少个 0 +## 1. 统计阶乘尾部有多少个 0 [172. Factorial Trailing Zeroes (Easy)](https://leetcode.com/problems/factorial-trailing-zeroes/description/) @@ -232,7 +230,7 @@ public int trailingZeroes(int n) { # 字符串加法减法 -## 二进制加法 +## 1. 二进制加法 [67. Add Binary (Easy)](https://leetcode.com/problems/add-binary/description/) @@ -260,7 +258,7 @@ public String addBinary(String a, String b) { } ``` -## 字符串加法 +## 2. 字符串加法 [415. Add Strings (Easy)](https://leetcode.com/problems/add-strings/description/) @@ -282,7 +280,7 @@ public String addStrings(String num1, String num2) { # 相遇问题 -## 改变数组元素使所有的数组元素都相等 +## 1. 改变数组元素使所有的数组元素都相等 [462. Minimum Moves to Equal Array Elements II (Medium)](https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/description/) @@ -307,7 +305,7 @@ Only two moves are needed (remember each move increments or decrements one eleme 设数组长度为 N,则可以找到 N/2 对 a 和 b 的组合,使它们都移动到 m 的位置。 -## 解法 1 +**解法 1** 先排序,时间复杂度:O(NlogN) @@ -325,7 +323,7 @@ public int minMoves2(int[] nums) { } ``` -## 解法 2 +**解法 2** 使用快速选择找到中位数,时间复杂度 O(N) @@ -378,7 +376,7 @@ private void swap(int[] nums, int i, int j) { # 多数投票问题 -## 数组中出现次数多于 n / 2 的元素 +## 1. 数组中出现次数多于 n / 2 的元素 [169. Majority Element (Easy)](https://leetcode.com/problems/majority-element/description/) @@ -406,7 +404,7 @@ public int majorityElement(int[] nums) { # 其它 -## 平方数 +## 1. 平方数 [367. Valid Perfect Square (Easy)](https://leetcode.com/problems/valid-perfect-square/description/) @@ -432,7 +430,7 @@ public boolean isPerfectSquare(int num) { } ``` -## 3 的 n 次方 +## 2. 3 的 n 次方 [326. Power of Three (Easy)](https://leetcode.com/problems/power-of-three/description/) @@ -442,7 +440,7 @@ public boolean isPowerOfThree(int n) { } ``` -## 乘积数组 +## 3. 乘积数组 [238. Product of Array Except Self (Medium)](https://leetcode.com/problems/product-of-array-except-self/description/) @@ -473,7 +471,7 @@ public int[] productExceptSelf(int[] nums) { } ``` -## 找出数组中的乘积最大的三个数 +## 4. 找出数组中的乘积最大的三个数 [628. Maximum Product of Three Numbers (Easy)](https://leetcode.com/problems/maximum-product-of-three-numbers/description/) diff --git a/notes/Leetcode 题解 - 数学.md b/notes/Leetcode 题解 - 数学.md index fdf9879a..0b8946dd 100644 --- a/notes/Leetcode 题解 - 数学.md +++ b/notes/Leetcode 题解 - 数学.md @@ -1,30 +1,28 @@ * [素数分解](#素数分解) * [整除](#整除) - * [最大公约数最小公倍数](#最大公约数最小公倍数) - * [生成素数序列](#生成素数序列) - * [最大公约数](#最大公约数) - * [使用位操作和减法求解最大公约数](#使用位操作和减法求解最大公约数) +* [最大公约数最小公倍数](#最大公约数最小公倍数) + * [1. 生成素数序列](#1-生成素数序列) + * [2. 最大公约数](#2-最大公约数) + * [3. 使用位操作和减法求解最大公约数](#3-使用位操作和减法求解最大公约数) * [进制转换](#进制转换) - * [7 进制](#7-进制) - * [16 进制](#16-进制) - * [26 进制](#26-进制) + * [1. 7 进制](#1-7-进制) + * [2. 16 进制](#2-16-进制) + * [3. 26 进制](#3-26-进制) * [阶乘](#阶乘) - * [统计阶乘尾部有多少个 0](#统计阶乘尾部有多少个-0) + * [1. 统计阶乘尾部有多少个 0](#1-统计阶乘尾部有多少个-0) * [字符串加法减法](#字符串加法减法) - * [二进制加法](#二进制加法) - * [字符串加法](#字符串加法) + * [1. 二进制加法](#1-二进制加法) + * [2. 字符串加法](#2-字符串加法) * [相遇问题](#相遇问题) - * [改变数组元素使所有的数组元素都相等](#改变数组元素使所有的数组元素都相等) - * [解法 1](#解法-1) - * [解法 2](#解法-2) + * [1. 改变数组元素使所有的数组元素都相等](#1-改变数组元素使所有的数组元素都相等) * [多数投票问题](#多数投票问题) - * [数组中出现次数多于 n / 2 的元素](#数组中出现次数多于-n--2-的元素) + * [1. 数组中出现次数多于 n / 2 的元素](#1-数组中出现次数多于-n--2-的元素) * [其它](#其它) - * [平方数](#平方数) - * [3 的 n 次方](#3-的-n-次方) - * [乘积数组](#乘积数组) - * [找出数组中的乘积最大的三个数](#找出数组中的乘积最大的三个数) + * [1. 平方数](#1-平方数) + * [2. 3 的 n 次方](#2-3-的-n-次方) + * [3. 乘积数组](#3-乘积数组) + * [4. 找出数组中的乘积最大的三个数](#4-找出数组中的乘积最大的三个数) @@ -40,13 +38,13 @@ 如果 x 整除 y(y mod x == 0),则对于所有 i,mi <= ni。 -## 最大公约数最小公倍数 +# 最大公约数最小公倍数 x 和 y 的最大公约数为:gcd(x,y) = 2min(m0,n0) \* 3min(m1,n1) \* 5min(m2,n2) \* ... x 和 y 的最小公倍数为:lcm(x,y) = 2max(m0,n0) \* 3max(m1,n1) \* 5max(m2,n2) \* ... -## 生成素数序列 +## 1. 生成素数序列 [204. Count Primes (Easy)](https://leetcode.com/problems/count-primes/description/) @@ -70,7 +68,7 @@ public int countPrimes(int n) { } ``` -### 最大公约数 +## 2. 最大公约数 ```java int gcd(int a, int b) { @@ -86,7 +84,7 @@ int lcm(int a, int b) { } ``` -## 使用位操作和减法求解最大公约数 +## 3. 使用位操作和减法求解最大公约数 [编程之美:2.7](#) @@ -122,7 +120,7 @@ public int gcd(int a, int b) { # 进制转换 -## 7 进制 +## 1. 7 进制 [504. Base 7 (Easy)](https://leetcode.com/problems/base-7/description/) @@ -153,7 +151,7 @@ public String convertToBase7(int num) { } ``` -## 16 进制 +## 2. 16 进制 [405. Convert a Number to Hexadecimal (Easy)](https://leetcode.com/problems/convert-a-number-to-hexadecimal/description/) @@ -186,7 +184,7 @@ public String toHex(int num) { } ``` -## 26 进制 +## 3. 26 进制 [168. Excel Sheet Column Title (Easy)](https://leetcode.com/problems/excel-sheet-column-title/description/) @@ -214,7 +212,7 @@ public String convertToTitle(int n) { # 阶乘 -## 统计阶乘尾部有多少个 0 +## 1. 统计阶乘尾部有多少个 0 [172. Factorial Trailing Zeroes (Easy)](https://leetcode.com/problems/factorial-trailing-zeroes/description/) @@ -232,7 +230,7 @@ public int trailingZeroes(int n) { # 字符串加法减法 -## 二进制加法 +## 1. 二进制加法 [67. Add Binary (Easy)](https://leetcode.com/problems/add-binary/description/) @@ -260,7 +258,7 @@ public String addBinary(String a, String b) { } ``` -## 字符串加法 +## 2. 字符串加法 [415. Add Strings (Easy)](https://leetcode.com/problems/add-strings/description/) @@ -282,7 +280,7 @@ public String addStrings(String num1, String num2) { # 相遇问题 -## 改变数组元素使所有的数组元素都相等 +## 1. 改变数组元素使所有的数组元素都相等 [462. Minimum Moves to Equal Array Elements II (Medium)](https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/description/) @@ -307,7 +305,7 @@ Only two moves are needed (remember each move increments or decrements one eleme 设数组长度为 N,则可以找到 N/2 对 a 和 b 的组合,使它们都移动到 m 的位置。 -## 解法 1 +**解法 1** 先排序,时间复杂度:O(NlogN) @@ -325,7 +323,7 @@ public int minMoves2(int[] nums) { } ``` -## 解法 2 +**解法 2** 使用快速选择找到中位数,时间复杂度 O(N) @@ -378,7 +376,7 @@ private void swap(int[] nums, int i, int j) { # 多数投票问题 -## 数组中出现次数多于 n / 2 的元素 +## 1. 数组中出现次数多于 n / 2 的元素 [169. Majority Element (Easy)](https://leetcode.com/problems/majority-element/description/) @@ -406,7 +404,7 @@ public int majorityElement(int[] nums) { # 其它 -## 平方数 +## 1. 平方数 [367. Valid Perfect Square (Easy)](https://leetcode.com/problems/valid-perfect-square/description/) @@ -432,7 +430,7 @@ public boolean isPerfectSquare(int num) { } ``` -## 3 的 n 次方 +## 2. 3 的 n 次方 [326. Power of Three (Easy)](https://leetcode.com/problems/power-of-three/description/) @@ -442,7 +440,7 @@ public boolean isPowerOfThree(int n) { } ``` -## 乘积数组 +## 3. 乘积数组 [238. Product of Array Except Self (Medium)](https://leetcode.com/problems/product-of-array-except-self/description/) @@ -473,7 +471,7 @@ public int[] productExceptSelf(int[] nums) { } ``` -## 找出数组中的乘积最大的三个数 +## 4. 找出数组中的乘积最大的三个数 [628. Maximum Product of Three Numbers (Easy)](https://leetcode.com/problems/maximum-product-of-three-numbers/description/)