排序
萌萌,站起来
这个作者很懒,什么都没留下…
展开
-
leetcode 1300. 转变数组后最接近目标值的数组和 (星期一再写一遍)
给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。如果有多种使得和最接近 target 的方案,请你返回这些整数中的最小值。请注意,答案不一定是 arr 中的数字。示例 1:输入:arr = [4,9,3], target = 10输出:3解释:当选择 value 为 3 时,数组会变成 [3, 3, 3],和为 9 ,这是最接近原创 2020-06-14 12:34:37 · 156 阅读 · 0 评论 -
玩转lee16 最接近的三个数
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).思路可以不使用查找表 因为不是找特定的数还...原创 2020-01-10 21:35:58 · 130 阅读 · 0 评论 -
合并两个排序数组
两个排序数组1.2 ,1后面有足够空间放2,有序合并输出数组1class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { if(m ==0 ) { System.arraycopy(nums2,0,nums1,0, n); } ...原创 2019-12-11 13:22:11 · 204 阅读 · 0 评论 -
new 数组中的重复数字 可改动数组\不可改动数组
在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。直接排序 Arrays.sort()时间复杂度:O(nlogn)HashMappublic boolean duplicate...原创 2019-11-02 20:03:48 · 105 阅读 · 0 评论 -
new 扑克牌顺子
LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张牌就可以变...原创 2019-10-25 18:48:54 · 103 阅读 · 0 评论 -
new 把数组排成最小的数 自定义比较器有问题 未找到
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。直接直接解法就是求出所有数字的全排列,把每个排列拼接起来,最后求出拼起来的最小值。有些类似于 “字符串的排列”添加链接描述设置排序规则,数字转换成字符串先将整型数组转换成String数组,然后将String数组排序...原创 2019-10-19 17:30:36 · 70 阅读 · 0 评论 -
new 数组中出现超过一半的数字 hashmap迭代器
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。巧解先将数组排序题中意思有超过数组一半的数排序后 数组中间的数一定是,将数组中间的数记录下来出现的次数将次数与数组个数一半比较,如果大于则就是这个数如果没有就返回0import ...原创 2019-10-18 17:33:59 · 114 阅读 · 0 评论 -
new 字符串的排列 ????
对于无重复值的情况固定第一个字符,递归取得首位后面的各种字符串组合;再把第一个字符与后面每一个字符交换,并同样递归获得首位后面的字符串组合; *递归的出口,就是只剩一个字符的时候,递归的循环过程,就是从每个子串的第二个字符开始依次与第一个字符交换,然后继续处理子串。假如有重复值呢?*由于全排列就是从第一个数字起,每个数分别与它后面的数字交换,我们先尝试加个这样的判断——如果一个数...原创 2019-10-18 15:12:51 · 106 阅读 · 0 评论 -
new 调整奇数偶数顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。两遍扫描 新建数组 第一遍奇数 第二遍偶数public class Solution { public void reOrderArray(int [] array) { int[] ans=new in...原创 2019-10-13 20:18:14 · 159 阅读 · 0 评论 -
new 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路暴力遍历一遍如果前一个大于后一个,返回后一个注:1.数组为空时,返回02.数组就一个元素时 ,返回arra...原创 2019-10-12 22:03:56 · 95 阅读 · 0 评论