算法
文章平均质量分 92
小笼包95
Java程序猿,同时也希望能在算法更进一步,共勉!
展开
-
【解题报告】《LeetCode零基础指南》(第十讲) 简单递归 - Java
目录一、172. 阶乘后的零1.题目2.分析3.代码二、1342. 将数字变成 0 的操作次数1.题目2.分析3.代码三、222. 完全二叉树的节点个数1.题目2.分析3.代码四、LCP 44. 开幕式焰火1.题目2.分析3.代码五、397. 整数替换1.题目2.分析3.代码一、172. 阶乘后的零1.题目172. 阶乘后的零给定一个整数 n ,返回 n! 结果中尾随零的数量。提示 n! = n * (n - 1) * (n - 2) * … * 3 * 2 * 12.分析用一个例子来解.原创 2021-12-19 20:40:33 · 769 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第九讲) 二级指针 - Java
目录一、832. 翻转图像1.题目2.分析3.代码二、867. 转置矩阵1.题目2.分析3.代码三、566. 重塑矩阵1.题目2.分析3.代码四、2022. 将一维数组转变成二维数组1.题目2.分析3.代码五、1260. 二维网格迁移1.题目2.分析3.代码六、661. 图片平滑器1.题目2.分析3.代码一、832. 翻转图像1.题目832. 翻转图像给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, .原创 2021-12-17 23:33:07 · 1095 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第八讲) 二维数组 - Java
目录一、1351. 统计有序矩阵中的负数1.题目2.分析3.代码二、1572. 矩阵对角线元素的和1.题目2.分析3.代码三、1672. 最富有客户的资产总量1.题目2.分析3.代码四、766. 托普利茨矩阵1.题目2.分析3.代码五、1380. 矩阵中的幸运数1.题目2.分析3.代码六、1582. 二进制矩阵中的特殊位置1.题目2.分析3.代码七、463. 岛屿的周长1.题目2.分析3.代码一、1351. 统计有序矩阵中的负数1.题目1351. 统计有序矩阵中的负数给你一个 m * n 的矩阵.原创 2021-12-16 23:57:46 · 416 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第七讲) 贪心 - Java
目录一、1913. 两个数对之间的最大乘积差1.题目2.分析3.代码二、976. 三角形的最大周长1.题目2.分析3.代码三、561. 数组拆分 I1.题目2.分析3.代码四、881. 救生艇1.题目2.分析3.代码五、324. 摆动排序 II1.题目2.分析3.代码六、455. 分发饼干1.题目2.分析3.代码七、1827. 最少操作使数组递增1.题目2.分析3.代码八、945. 使数组唯一的最小增量1.题目2.分析3.代码九、611. 有效三角形的个数1.题目2.分析3.代码一、1913. 两个数对.原创 2021-12-15 23:29:33 · 1492 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第六讲) C排序API - Java
目录一、912. 排序数组1.题目2.分析3.代码二、169. 多数元素1.题目2.分析3.代码三、217. 存在重复元素1.题目2.分析3.代码四、164. 最大间距1.题目2.分析3.代码五、905. 按奇偶排序数组1.题目2.分析3.代码六、539. 最小时间差1.题目2.分析3.代码七、976. 三角形的最大周长1.题目2.分析3.代码八、881. 救生艇1.题目2.分析3.代码一、912. 排序数组1.题目912. 排序数组给你一个整数数组 nums,请你将该数组升序排列。2.分析.原创 2021-12-14 23:22:26 · 625 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第五讲) 指针 - Java
目录一、1470. 重新排列数组1.题目2.分析3.代码二、1929. 数组串联1.题目2.分析3.代码三、1920. 基于排列构建数组1.题目2.分析3.代码四、1480. 一维数组的动态和1.题目2.分析3.代码五、剑指 Offer 58 - II. 左旋转字符串1.题目2.分析3.代码六、1108. IP 地址无效化1.题目2.分析3.代码七、剑指 Offer 05. 替换空格1.题目2.分析3.代码八、1365. 有多少小于当前数字的数字1.题目2.分析3.代码九、剑指 Offer 17. 打印从.原创 2021-12-13 23:18:36 · 856 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第四讲) 一维数组 - Java
【解题报告】《LeetCode零基础指南》(第四讲)一维数组 - Java,其中题目用到了动态规划(dp),位运算、递归等等原创 2021-12-12 18:40:05 · 1384 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第三讲) 循环 - Java
目录零、流程控制1. if - else if - else2. switch3. 循环3.1 循环的种类3.2 循环的终止3.3 循环的命名一、剑指 Offer 64. 求1+2+…+n1.题目2.分析3.代码二、231. 2 的幂1.题目2.分析3.代码三、3的幂1.题目2.分析3.代码四、342. 4的幂1.题目2.分析3.代码五、1492. n 的第 k 个因子1.题目2.分析3.代码六、367. 有效的完全平方数1.题目2.分析3.代码零、流程控制说到循环,就不得不提到一个词——流程控制。.原创 2021-12-11 15:35:23 · 973 阅读 · 0 评论 -
【解题报告】《LeetCode零基础指南》(第二讲) 函数 - Java
万人千题社区 - 九日集训(第二讲)题解原创 2021-12-10 23:27:15 · 558 阅读 · 1 评论 -
【解题报告】《算法零基础100讲》(第17讲) 线性枚举(一) - 最值算法 - Java
目录一、485. 最大连续 1 的个数1.题目2.分析3.代码二、1464. 数组中两元素的最大乘积1.题目2.分析3.代码三、153. 寻找旋转排序数组中的最小值1.题目2.分析3.代码四、154. 寻找旋转排序数组中的最小值 II1.题目2.分析3.代码五、414. 第三大的数1.题目2.分析3.代码六、628. 三个数的最大乘积1.题目2.分析3.代码一、485. 最大连续 1 的个数1.题目485. 最大连续 1 的个数给定一个二进制数组, 计算其中最大连续 1 的个数。输入的数组只包.原创 2021-11-08 01:39:29 · 1137 阅读 · 2 评论 -
【解题报告】《算法零基础100讲》(第15讲) 二分快速幂 - Java
目录零、关于快速幂一、50. Pow(x, n)1.题目2.分析3.代码二、372. 超级次方1.题目2.分析3.代码零、关于快速幂我一开始听到快速幂,不知道这是做什么用的,就去先自己了解了一下,也在这里简单做一个记录,有错漏的地方欢迎指正。快速幂计算:ab mod ca^b\ mod\ cab mod c在很多地方都能使用到快速幂,比如说RSA加密算法,需要用到:(明文)e mod n 和 (密文)d m.原创 2021-11-07 22:23:55 · 591 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础016_变量交换算法》- Java
目录一、面试题 16.01. 交换数字1.题目2.分析3.代码二、面试题 05.07. 配对交换1.题目2.分析3.代码一、面试题 16.01. 交换数字1.题目面试题 16.01. 交换数字编写一个函数,不用临时变量,直接交换numbers = [a, b]中a与b的值。numbers.length == 2-2147483647 <= numbers[i] <= 21474836472.分析这道题可以有两种解法,我这里介绍比较喜欢用的一种:异或运算这道题涉及到的知识.原创 2021-11-05 23:36:48 · 409 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础013_最大公约数》- Java
目录一、1979.找出数组的最大公约数1.题目2.分析3.代码二、1819. 序列中不同最大公约数的数目1.题目2.分析3.代码一、1979.找出数组的最大公约数1.题目1979.找出数组的最大公约数给你一个整数数组 nums ,返回数组中最大数和最小数的 最大公约数 。两个数的 最大公约数 是能够被两个数整除的最大正整数。2 <= nums.length <= 10001 <= nums[i] <= 10002.分析这道题涉及到的知识点:被除数和除数:若.原创 2021-11-03 00:10:46 · 619 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础012_因子和》- Java
目录一、1390.四因数1.题目2.分析3.代码一、1390.四因数1.题目1390.四因数给你一个整数数组 nums,请你返回该数组中恰有四个因数的这些整数的各因数之和。如果数组中不存在满足题意的整数,则返回 0 。1 <= nums.length <= 1041 <= nums[i] <= 1052.分析这道题涉及到的知识点:等比数列求和:Sn=a1+a1q+a1q2+...+a1qn−1=a1(1−qn)(1−q)S_n = a_1 + a_1q +.原创 2021-11-02 03:15:04 · 357 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础009_算术基本定理》- Java
目录一、507.完美数1.题目2.分析3.代码二、263.丑数1.题目2.分析3.代码一、507.完美数1.题目507.完美数对于一个 正整数,如果它和除了它自身以外的所有 正因子 之和相等,我们称它为 「完美数」。给定一个 整数 n, 如果是完美数,返回 true,否则返回 false1 <= num <= 1082.分析对 num = 1 进行特殊判断,因为 1 的正因子只有自身,所以直接返回false。因为在 [ 1, Math.sqrt(num) ] 中,若存在.原创 2021-11-01 00:30:00 · 373 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础008_素数筛选》- Java
目录一、204.计数质数1.题目2.分析3.代码一、204.计数质数1.题目204.计数质数统计所有小于非负整数 n 的质数的数量。0 <= n <= 5 * 1062.分析3.代码 public int countPrimes(int n) { long[] a = new long[n + 2]; int i,count = 0; long j; //0和1不是质数 a[0] = 1;原创 2021-10-31 23:18:08 · 261 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础010_因子分解和枚举》- Java
目录一、1492.n的第k个因子1.题目2.分析3.代码二、1362.最接近的质数1.题目2.分析3.代码三、1808.好因子的最大数目1.题目2.分析3.代码一、1492.n的第k个因子1.题目给你两个正整数 n 和 k 。如果正整数 i 满足 n % i == 0 ,那么我们就说正整数 i 是整数 n 的因子。考虑整数 n 的所有因子,将它们 升序排列 。请你返回第 k 个因子。如果 n 的因子数少于 k ,请返回 -1 。1 <= k <= n <= 10002..原创 2021-10-31 22:20:24 · 464 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础007_素数判定》- Java
目录一、866. 回文素数1.题目2.分析3.代码二、剑指 Offer 49.丑数1.题目2.分析3.代码一、866. 回文素数1.题目866. 回文素数求出大于或等于 N 的最小回文素数。回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数。例如,2,3,5,7,11 以及 13 是素数。回顾一下,如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数。例如,12321 是回文数。1 <= N <= 108答案肯定存在,且小于 2 * 108。原创 2021-10-29 13:12:21 · 754 阅读 · 2 评论 -
【LeetCode解题报告】《算法基础004_组合数》- Java
目录一、杨辉三角1.题目2.分析3.代码二、杨辉三角II1.题目2.分析3.代码一、杨辉三角1.题目118.杨辉三角给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。1 <= numRows <= 302.分析从杨辉三角找到了几点规律:杨辉三角可以看作一个二维数组,有对应的行和列。对于杨辉三角第n行:行数= 列数 = 元素个数 = n第二行开始,每行首尾元素都为1。即: a[n−1][0]原创 2021-10-27 23:31:57 · 308 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础003_矩阵》- Java
目录一、最富有客户的资产数量1.题目2.分析3.代码二、二进制矩阵中的特殊位置1.题目2.分析3.代码三、翻转图像1.题目2.分析3.代码四、旋转图像1.题目2.分析3.代码五、转置矩阵1.题目2.分析3.代码六、将一维数组变成二维数组1.题目2.分析3.代码七、判断矩阵经轮转后是否一致1.题目2.分析3.代码八、二维网格迁移1.题目2.分析3.代码一、最富有客户的资产数量1.题目1672.最富有客户的资产数量给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j]原创 2021-10-27 22:57:51 · 774 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础002_数列》- Java
目录一、斐波那契数1.题目2.分析3.代码二、第N个泰波那契数1.题目2.分析3.代码三、求 1+2+...+n1.题目2.分析3.代码四、单调数列1.题目2.分析3.代码一、斐波那契数1.题目509.斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。原创 2021-10-27 22:12:03 · 234 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础001_幂和对数》- Java
目录一、4的幂1.题目2.分析3.代码一、4的幂1.题目342.4的幂给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x-231 <= n <= 231 - 12.分析这里涉及到几个知识点:对数logn(N),N一定大于0对数换底公式:loga(b) = logc(a) / logc(b)浮点数运算不精确浮点数相等的判断方法:两数相减的绝对值小原创 2021-10-27 21:51:57 · 165 阅读 · 0 评论 -
【LeetCode解题报告】《算法基础006_日期算法》- Java
目录一、一周中的第几天1.题目2.分析3.代码二、一年中的第几天1.题目2.分析3.代码三、日期之间隔几天1.题目2.分析3.代码一、一周中的第几天1.题目1185.一周中的第几天给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month 和 year,分别表示日、月、年。您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”,“Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday原创 2021-10-27 17:24:53 · 719 阅读 · 4 评论 -
【LeetCode解题报告】《算法基础005_计数法》- Java
目录一、唯一元素的和1.题目2.分析3.代码二、字符串中的第一个唯一字符1.题目2.分析3.代码三、检查是否所有字符出现次数相同1.题目2.分析3.代码四、找到所有数组中消失的数字1.题目2.分析3.代码五、好数对的数目1.题目2.分析3.代码六、大餐计数1.题目2.分析3.代码一、唯一元素的和1.题目题目链接给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的 和 。1 <= nums.length <= 1001 <原创 2021-10-27 02:20:37 · 544 阅读 · 0 评论