LeetCode
yaCoding
科技改变生活,IT成就未来
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
028. 展平多级双向链表
剑指 Offer II 028. 展平多级双向链表 class Solution { public Node flatten(Node head) { dfs(head); return head; } public Node dfs(Node node) { Node cur = node; // 记录链表的最后一个节点 Node last = null; while (cur !=原创 2022-01-26 22:02:38 · 507 阅读 · 0 评论 -
《LeetCode零基础指南》(第四讲) 一维数组
1.33. 搜索旋转排序数组 2.81. 搜索旋转排序数组 II 3.153. 寻找旋转排序数组中的最小值 4.70. 爬楼梯 5.509. 斐波那契数 6.1137. 第 N 个泰波那契数原创 2021-12-03 20:57:03 · 212 阅读 · 0 评论 -
排序入门 - 选择排序
1.769. 最多能完成排序的块 数组arr是[0, 1, …, arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。我们最多能将数组分成多少块? /*数组arr是[0, 1, ..., arr.length - 1]的一种排列,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同*/ class Solution { public in原创 2021-12-02 21:51:07 · 190 阅读 · 0 评论 -
《LeetCode零基础指南》(第九讲) 二级指针
1.832. 翻转图像 class Solution { public int[][] flipAndInvertImage(int[][] image) { for(int i = 0; i < image.length; i++){ int n = image[i].length - 1; for(int j = 0; j <= n; j++,n--){ if(image[i][j] != ima原创 2021-11-30 12:44:27 · 128 阅读 · 0 评论 -
《LeetCode零基础指南》(第八讲) 二维数组
1.1351. 统计有序矩阵中的负数 /**给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非递增顺序排列。 请你统计并返回 grid 中负数的数目。 */ class Solution {//二分法 public int countNegatives(int[][] grid) { int count = 0; for(int i = 0; i < grid.length; i++){ int left =原创 2021-11-29 11:20:30 · 615 阅读 · 0 评论 -
字符串算法(六) - 回文串
1.125. 验证回文串 /* 1.给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 2.说明:本题中,我们将空字符串定义为有效的回文串。 */ class Solution { public boolean isPalindrome(String s) { if(s == null) { return true; } s = s.toLowerCase(); for(int i=原创 2021-11-28 20:18:26 · 452 阅读 · 0 评论 -
《LeetCode零基础指南》(第七讲) 贪心
1.611. 有效三角形的个数 /*给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。 */ class Solution { public int triangleNumber(int[] nums) { if(nums == null || nums.length < 3){ return 0; } Arrays.sort(nums);//先排序 int count = 0原创 2021-11-28 10:17:18 · 452 阅读 · 0 评论 -
《LeetCode零基础指南》(第六讲) C排序API
1.排序数组 /** 堆排序的思想就是先将待排序的序列建成大根堆,使得每个父节点的元素大于等于它的子节点。此时整个序列最大值即为堆顶元素,我们将其与末尾元素交换,使末尾元素为最大值,然后再调整堆顶元素使得剩下的 n-1 个元素仍为大根堆,再重复执行以上操作我们即能得到一个有序的序列。 */ class Solution { public int[] sortArray(int[] nums) { heapSort(nums); return nums;原创 2021-11-27 17:00:27 · 1084 阅读 · 0 评论 -
[学习报告]《LeetCode零基础指南》(第五讲) 指针
1.重新排列数组 class Solution { public int[] shuffle(int[] nums, int n) { int [] ans = new int [2 * n]; for(int i = 0; i <= n -1 ; i++){ ans[2*i] = nums[i]; ans[2*i + 1] = nums[i + n]; } return ans原创 2021-11-26 16:20:59 · 128 阅读 · 0 评论 -
《LeetCode零基础指南》(第四讲) 一维数组
1.搜索旋转排序数组 class Solution { public int search(int[] nums, int target) { //将数组一分为二,其中一定有一个是有序的,另一个可能是有序,也能是部分有序。 //此时有序部分用二分法查找。无序部分再一分为二,其中一个一定有序,另一个可能有序,可能无序 int n = nums.length; if (n == 0) { return -1;原创 2021-11-24 23:00:16 · 140 阅读 · 0 评论 -
[学习报告]《LeetCode零基础指南》(第三讲) 循环
1.求1+2+…+n 求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C) /**求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)*/ class Solution { public int sumNums(int n) { boolean m = n > 1 && (n += sumNu原创 2021-11-24 09:33:44 · 450 阅读 · 0 评论 -
《LeetCode零基础指南》(第2讲) 函数)[学习报告]
本人基于Java语言实现!!! 1.两数相除 给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数 dividend 除以除数 divisor 得到的商。 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2(二分还是不熟练具体参考题解吧各位….) class Solution { public int divide(int d原创 2021-11-23 10:10:18 · 346 阅读 · 0 评论 -
进制转换求解
k进制表示下的各位数字和 给你一个整数 n(10 进制)和一个基数 k ,请你将 n 从 10 进制表示转换为 k 进制表示,计算并返回转换后各位数字的 总和 。 转换后,各位数字应当视作是 10 进制数字,且它们的总和也应当按 10 进制表示返回。 思路:集合 + 短除法 class Solution { public int sumBase(int n, int k) { ArrayList<Integer> list = new ArrayList<>(原创 2021-11-22 15:13:13 · 245 阅读 · 0 评论 -
算法刷题小结
1.LeetCode1399 给你一个整数 n 。请你先求出从 1 到 n 的每个整数 10 进制表示下的数位和(每一位上的数字相加),然后把数位和相等的数字放到同一个组中。 请你统计每个组中的数字数目,并返回数字数目并列最多的组有多少个。 思路:使用哈希表建立一个从数位和到原数字的哈希映射,对每一个数字 ,使键对应的值自增1。然后我们在值的集合中找到最大的值 m,再遍历哈希表,统计值为 m 的个数就可以了。 class Solution { public int countLargestGroup原创 2021-11-21 21:29:24 · 369 阅读 · 0 评论 -
剑指offer13
剑指offer13 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子? 思路:对数 x 每次对 10 取余,就能知道数 x 的个位数是多少,然后再将 x原创 2021-11-21 20:24:18 · 108 阅读 · 0 评论 -
算法刷题小结
刷题小结 1.在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 方法一:使用哈希表存储频数 思路与算法: 我们可以对字符串进行两次遍历。 在第一次遍历时,我们使用哈希映射统计出字符串中每个字符出现的次数。 在第二次遍历时,我们只要遍历到了一个只出现一次的字符,那么就返回该字符,否则在遍历结束后返回空格。 class Solution { public char firstUniqChar(String s) { ...原创 2021-11-14 23:24:53 · 153 阅读 · 0 评论
分享