20200612:力扣192周周赛上
力扣192周周赛上
- 题目
- 思路与算法
- 代码实现
- 复杂度分析
题目
1. 重新排列数组
2. 数组中的k个最强值
思路与算法
- 第一题不需要太多思路,最简单的就是list,list将要求的顺序的数依次收入,再将其按照顺序重新放回nums。或者,直接用顺序上的规律来写即可。
- 第二题的话,也没思路问题,排序,获取中位数,然后进行判断即可,注意只要前k个符合要求的数,其他的注意写的时候的一些细节即可。
代码实现
1. 重新排列数组
class Solution {public int[] shuffle(int[] nums, int n) {int[] res = new int[2*n];for (int i = 0; i < n; i++) {res[2*i] = nums[i];}for (int j = 0; j < n; j++) {res[2*j+1] = nums[j+n];}return res;}
}
class Solution {public int[] shuffle(int[] nums, int n) {List<Integer> list = new ArrayList<>();for (int i = 0; i < n; i++) {list.add(nums[i]);list.add(nums[i+n]);}for (int j = 0; j < 2*n; j++) {nums[j] = list.get(j);}return nums;}
}
2. 数组中的k个最强值
class Solution {public int[] getStrongest(int[] arr, int k) {Arrays.sort(arr);int len = arr.length;int left = 0;int right = len - 1;int mid = arr[(len-1)/2];int[] res = new int[k];int count = 0;while (count < k) {if (Math.abs(arr[right] - mid) >= Math.abs(arr[left] - mid)) {res[count++] = arr[right];right--;} else {res[count++] = arr[left];left++;}}return res;}
}
复杂度分析
- 第一题时间复杂度为O(N)
- 第二题时间复杂度为O(N)+O(NlogN) = O(NlogN)
20200612:力扣192周周赛上相关推荐
- 20200724:力扣197周周赛上
力扣197周周赛上 题目 思路与算法 代码实现 复杂度分析 题目 好数对的数目 仅含 1 的子串数 思路与算法 第一题直接暴力或者使用map来存值,注意到我们只需要找到这个数字出现的次数num,那么其 ...
- 20200705:力扣196周周赛上
力扣196周周赛上 题目 思路与算法 代码实现 复杂度分析 判断能否形成等差数列 题目 所有蚂蚁掉下来前的最后一刻 请注意仔细看给的示例: 思路与算法 题目给定了数组长度大于等于2,也就是说,先排序, ...
- 20200701:力扣194周周赛上
力扣194周周赛上 题目 思路与算法 代码实现 复杂度分析 题目 数组异或操作 保证文件名唯一 注意这个示例: 思路与算法 半个月没写博客了,太懒了,不能再拖延了,今天开始全部带上C++和Java的双 ...
- 20200616:力扣193周周赛上
力扣193周周赛上 题目 思路与算法 代码实现 写在最后 题目 一维数组的动态和 不同整数的最少数目 思路与算法 第一题没啥好说的,动态和,dp最基础的东西. 第二题主要是一个贪心的过程,既然要剩下的 ...
- 20200505:力扣151周周赛上
力扣151周周赛上 题目 思路与算法 代码实现 题目 查询无效交易 2.比较字符串最小字母出现频次 思路与算法 第一题直接将我们需要的这四组数据包装成一个Transaction对象,主要是注意书写问题 ...
- 20200503:力扣187周周赛上
力扣187周周赛上 题目 思路与算法 代码实现 复杂度分析 题目 旅行终点站 是否所有 1 都至少相隔 k 个元素 思路与算法 第一题我没做出来,说来惭愧,菜的离谱.看大神的题解豁然开朗,这题类似之前 ...
- 20201007:力扣209周周赛题解记录(上)
力扣209周周赛题解记录(上) 题目 思路与算法 代码实现 复杂度分析 题目 特殊数组的特征值 奇偶树 思路与算法 第一题单纯的暴力就行,应该是可以用二分之类的改善复杂度,没必要赘述,直接上暴力遍历, ...
- 20200910:力扣204周周赛题解上(Java/Python/Cpp)
力扣204周周赛题解上 题目 思路与算法 代码实现 写在最后 题目 1.1566. 重复至少 K 次且长度为 M 的模式 2.1567. 乘积为正数的最长子数组长度 思路与算法 热身题不要求算法技巧, ...
- 20200814:力扣201周周赛题解记录上
力扣201周周赛题解记录上 题目 思路与算法 代码实现 写在最后 题目 整理字符串 找出第 N 个二进制字符串中的第 K 位 思路与算法 第一题这种类似消消乐的东西都是直接用栈来实现的,注意代码细节 ...
最新文章
- Mysql增强半同步模式_MySQL增强半同步参数rpl_semi_sync_master_wait_point值AFTER_SYNC和AFTER_COMMIT...
- Microbiome:生态中心张丽梅组-植物发育时期驱动玉米微生物组生态角色的分化...
- eclipse - unresolved inclusion: stdio.h
- Java的知识点30——线程的优先级、终止线程的典型方式、获取线程基本信息的方法
- Leetcode255用队列构造栈
- Spring注入日期到bean属性-CustomDateEditor
- 【从上云到创新,视频云的新技术与新场景】
- 无人银行真来了,未来80%的银行人估计得失业!
- linux mysql服务器安装_Linux服务器MySQL安装
- afn post请求上传文件_iOS利用AFNetworking(AFN) 实现图片上传
- Ubuntu: 创建PlayOnLinux快捷键 Create PlayOnLinux Application Desktop
- Git 原理详解及实用指南
- tf.image.resize_images
- php函数中pdf文件文字转曲,indesign使文字转曲的三种方法
- 对六自由度机械臂的运动控制及python实现(附源码)
- polkitd进程解释
- cmos电路多余输入端能否悬空_【技术分享】CMOS集成电路中多余输入端为何不能悬空?...
- Java并发教程(Oracle官方资料) 分享
- 电脑主要硬件解读与选购建议
- 华为手机录屏大师录制的视频在本地目录找不到无法转移到PC的问题解决方案——免费转移视频