LaN666
LaN666
全部文章
题解
归档
标签
去牛客网
登录
/
注册
LaN666的博客
梅花香自苦寒来~
全部文章
/ 题解
(共102篇)
题解 | #把数组排成最小的数#
来自专栏
32、把数组排成最小的数 解题思路: 要注意题目的意思是把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 这道题目可以看成是一道排序的题目,因为要使得结果最小,那么给出的整数要怎么排列呢?其实就可以转化为 A+B 与 B+A 之间比较的问题(注意:这里的A+B并不是A加上B,...
2021-06-19
11
1330
题解 | #整数中1出现的次数(从1到n整数中1出现的次数)#
来自专栏
解题思路: 我们看到题目要求 “输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数”。其实就是求从1-n这n个数中,每一个数的计数位上出现的1的个数的总和。 所以我们只需要知道在某个计数位上面1出现次数的计算方法即可求解这道题目,下面我们分为几种情况讨论: 1、当前位上的值等于0 我...
2021-06-19
20
2290
在两个长度相等的排序数组中找到上中位数
来自专栏
题目:给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。上中位数:假设递增序列长度为n,若n为奇数,则上中位数为第n/2+1个数;否则为第n/2个数 方法一:双指针假设两个数组为一个数组,先算出上中位数的位置。我们使用双指针去遍历两个数组,并且用一个数记录走...
排序
数组
2021-03-07
10
2669
图解《合并k个已排序的链表》
来自专栏
三种解法 分治 顺序合并 优先队列 首先做这道题,得先会一道基础的题目,没做过的可以先去做合并两个已排序的链表 分治(归并) 先分而治之,分到不能再分则合并(归并) 图解: import java.util.*; public class Solution { public ListN...
链表
分治
优先队列
2021-03-07
42
1654
子数组的最大累加和
来自专栏
分治 动态规划其实题目可以用动态规划做,很简单的动态规划题目,而且也是最优解先看代码: public int maxsumofSubarray (int[] arr) { int n = arr.length; if(n == 1) retu...
动态规划
分治
2021-03-07
9
841
寻找第K大
来自专栏
前言:此类问题就是经典TopK问题快速排序的详细解析可移至博主另外一篇博文几种常见排序下面直接给出题解~常规快速排序 public int findKth(int[] a, int n, int K) { return quickSort(a,0,n-1,K); } ...
快速排序
分治
2021-03-07
1
778
最大数
来自专栏
刚开始犯得错误:直接将整型数组去从大到小去排序,以为就是正确结果。用例: 10,1我的输出会是101,而正确的是110,所以这很明显是错误的,考虑不周到。那么直接用整型的就不行,那就另辟蹊径,用字符串形式进行排序。但是排序的规则要如何定义呢?我们知道,两个字符串之间比较大小的是比较每一个字符的大小...
排序
字符串排序
2021-03-03
10
1034
合并区间
来自专栏
NC 37 合并区间 方法一:排序+双指针 对于两个区间[a,b] [c,d] 1、若 a < c < b,则这两个区间可合并,此时若b>d,则合并后的区间为[a,b],反之为[a,d] 2、若 c > b, 则合并不了。 总共只有以上这两种情况。 所以对于上面,我们可以将...
合并区间
2021-03-02
12
0
Java版《奇偶链表》
来自专栏
维护两个指针,一个指向奇数链表的头,一个指向偶数链表的头先将链表分为奇数链表和偶数链表,然后再进行合并。奇数位置的后面必定是偶数,偶数位置后面必定是奇数,利用这个特点即可解决这道题目~ public ListNode oddEvenList (ListNode head) { if...
排序
双指针
奇偶链表
2021-03-02
2
813
循序渐进,从简单到高效解决TopK
来自专栏
最小的K个数 直接排序 利用库函数直接将数组排序,然后输出最小的K个数即可。 public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ArrayList<Integer>...
TopK
排序
2021-03-02
2
678
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页