comparator leetcode arrays sort
CF1861C-Queries-for-the-Array-题解
title: CF1861C Queries for the Array 题解 date: 2023-09-06 07:53:53 categories: - 题解 因为插入和删除操作都在队尾,所以对序列前缀分析一下: 若一个序列的答案为 YES,那么它前缀的答案也为 YES。(对于没检查过的序列) ......
[LeetCode Hot 100] LeetCode35. 搜索插入位置
题目描述 思路 基础二分搜索模板 本质:找到第一个大于等于target的元素的下标 注意: 该题目不存在重复元素 存在一种特殊情况:target > nums的最大值,此时插入的位置正好是left的位置 方法一: class Solution { public int searchInsert(in ......
[LeetCode Hot 100] LeetCode33. 搜索旋转排序数组
题目描述 思路 如果nums[left] <= nums[mid],则[left, mid]有序 如果nums[left] > nums[mid],则[mid,right]有序 方法一: class Solution { public int search(int[] nums, int targe ......
[LeetCode Hot 100] LeetCode34.在排序数组中查找元素的第一个和最后一个位置
题目描述 思路: 二分查找之寻找左右侧边界 两个关键点:1. 数组有序;2. 时间复杂度O(log n) 方法一: class Solution { public int[] searchRange(int[] nums, int target) { if (nums.length == 0 || ......
[LeetCode] LeetCode704. 二分查找
题目描述 思路 基础二分查找模板的考察。 方法一: class Solution { public int search(int[] nums, int target) { if (nums == null || nums.length == 0) return -1; int left = 0, ......
D. Array Collapse
D. Array Collapse You are given an array $[p_1, p_2, \dots, p_n]$, where all elements are distinct. You can perform several (possibly zero) operations ......
[AGC054C] Roughly Sorted 题解
题意 定义一种操作为交换 \(a_{i}\) 和 \(a_{i-1}\)。对于一个长度为 \(n\) 的排列,你需要操作若干次,使这个序列变合法,一个序列合法指:满足对于每一个 \(1\le i \le n\),都满足包含 \(a_i\) 的逆序对的个数不超过 \(k\),并且要求最小化操作次数。现 ......
Queries for the Array 题解
前言 这场 CF 是我赛后打的,vp 赛时没做出来,后来发现是有个地方理解错了,有一些细节没有考虑到。现在换了一种思路来写,感觉更清晰了。 做法 首先需要动态维护三个变量,\(cnt\) 和 \(finishsort\) 和 \(unfinishsort\)。这三个变量分别表示当前数字的个数,已经排 ......
C++ 反向遍历 array 小记
有时候需要逆向循环,例如从字符串的最右端遍历到最左端,需要注意一些细节!初学遇到一些 bug 记录在这里。 首先 arr.size() 的数据类型为 size_t,为无符号整型 对于 for (int idx = arr.size() - 1; idx >= 0; idx--): 使用 int 作为 ......
代码随想录算法训练营第五天| LeetCode242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
LeetCode242.有效的字母异位词 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 242. 有效的字母异位词 - 力扣(LeetCode) ● 自己看到题目的第一想法 public boolean anagram(String s, Stri ......
关于奇怪的 Array 函数:
关于奇怪的 Array 函数: 众所周知,我们可以通过Array函数来做以下事情。 初始化一个指定长度的数组。 设置数组的初始值。 // 1. Initialize an array of the specified length const array1 = Array(3) // [ , , ] ......
Array数组常用方法
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script> var arr = [1,2,3,4] //push 后面追加元素 //返回值 长度 var res = arr. ......
代码随想录算法训练营第四天| LeetCode24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07. 链表相交、142.环形链表II
LeetCode24. 两两交换链表中的节点 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 24. 两两交换链表中的节点 - 力扣(LeetCode) ● 自己看到题目的第一想法 主要是把这个过程想清楚,链表交换的题目主要想明白要动几个指针,指针改 ......
[LeetCode] LeetCode373. 查找和最小的K对数字
题目描述 思路:大顶堆+翻转 注意:该题有问题,代码可以通过测试用例。 方法一: class Solution { public List<List<Integer>> kSmallestPairs(int[] nums1, int[] nums2, int k) { PriorityQueue<N ......
推荐一款文本比对工具:Beyond Compare
Windows用户应该有不少人用过Beyond Compare,毕竟没有什么Windows破解不了的。奈何Mac却没有,只能花钱买一些其他正版替代使用,这不Beyond Compare从4.0版本开始引入了对Mac的支持,这真是一大奇迹,此处必须有掌声:👏👏👏👏👏👏👏👏👏👏👏� ......
[LeetCode138-链表-中等] 复制带有随机指针的链表
这道题是这样的,就是说有一个链表LindedNode, 通常我们链表包含2个属性,一个是它的值val,另一个是它指向的下一个结点nextNode, 但是这个题目中的链表还有一个属性,就是它还有个随机指针,这个随机指针可能指向链表中的任意结点(包括链表的结尾null结点,或者是自己) 也就是说这个链表 ......
[LeetCode] LeetCode692. 前K个高频单词
题目描述 思路 注意是前K个高频单词,就是TopK问题,只能用小根堆找最大的K个元素啊,用大根堆找的就是最小的K个元素了 思路一: class Solution { public List<String> topKFrequent(String[] words, int k) { Map<Strin ......
[LeetCode] LeetCode378. 有序矩阵中第K小的元素
题目描述 思路:Top-K问题 + 大顶堆 使用大顶堆求第K小的元素。 方法一: class Solution { public int kthSmallest(int[][] matrix, int k) { // 1. 使用大顶堆 PriorityQueue<Integer> heap = ne ......
Matlab 用sort函数排序 二维数组
在Matlab中排序某个向量(一维)时,可以使用sort(A),其中A为待排序的向量,如果仅是用来排序A,那么直接使用sort(A)即可, 如果排序后还需要保留原来的索引可以用返回值,即[B,ind]=sort(A),计算后,B是A排序后的向量,A保持不变,ind是B中每一项对应于A 中项的索引。排 ......
[LeetCode] 2415. Reverse Odd Levels of Binary Tree
Given the root of a perfect binary tree, reverse the node values at each odd level of the tree. For example, suppose the node values at level 3 are [2 ......
代码随想录算法训练营第天|LeetCode203.移除链表元素707.设计链表206.反转链表
LeetCode203.移除链表元素 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 203. 移除链表元素 - 力扣(LeetCode) ● 自己看到题目的第一想法 之前做这道题时想的不是很清楚,浅看了一下代码随想录的思路,又重新写了一边。删除链表 ......
Leetcode_26 删除有序数组中的重复项
题目描述 给你一个 非严格递增排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过: 输 ......
[LeetCode] LeetCode451. 根据字符出现频率排序
题目描述 思路:使用大顶堆 方法一: class Solution { public String frequencySort(String s) { // 1. HashMap统计词频 Map<Character, Integer> map = new HashMap<>(); for (char ......
[LeetCode] 2482. Difference Between Ones and Zeros in Row and Column
You are given a 0-indexed m x n binary matrix grid. A 0-indexed m x n difference matrix diff is created with the following procedure: Let the number o ......
CF1859F Fancy Arrays
Fancy Arrays - 洛谷 我们先找这题看起来有点奇怪的部分: \(x\leq 40\) \(|a_i-a_{i-1}|\leq k\) 我们先考虑第二个条件怎么用。我们发现 \(\min a_i \in [0,x+k)\),而原数组相邻两数之差的条件肯定要考虑成差分来处理 可以发现,一个差 ......
[LeetCode] LeeCode703. 数据流中的第K大元素
题目描述 思路:最小堆 好好领悟这个代码: // 将nums数组所有元素插入小根堆中 for (int num : nums) { heap.offer(num); // 当小根堆的容量大于k时,就删除堆顶元素 if (heap.size() > k) heap.poll(); } 当heap.si ......
[LeetCode21-链表-简单] 合并2个有序列表
这个题目是这样的,就是说有两个链表,这两个链表按照非递减的顺序排列, 我们要把这两个升序的链表合并,返回一个新的升序链表,新链表要求拼接给定的2个链表的所有结点,也就是说如果有重复的结点,也要全部返回列在新链表中 1->2->4 1->3->5 =》 返回的是 1->1->2->3->4->5 首先 ......
Java 数组排序时 Comparator 的使用
目录Java 数组排序时 Comparator 的使用Arrays.sortComparatorcomparingthenComparingnullsFirst 和 nullsLastnatureOrder 和 reversedOrderreversed Java 数组排序时 Comparator ......
代码随想录算法训练营第二天| LeetCode977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
LeetCode977.有序数组的平方 ● 今日学习的文章链接和视频链接 代码随想录 (programmercarl.com) 题目链接 977. 有序数组的平方 - 力扣(LeetCode) ● 自己看到题目的第一想法 昨天正好做了这道题目,总体来说就是用双指针法,要么从绝对值最小的数开始排序,要 ......
array_merge和+的区别
键名是string,两者区别: merge 如果键名为字符,且键名相同,array_merge()后面数组元素值会覆盖前面数组元素值 + 如果键名为字符,且键名相同,数组相加会将最先出现的值作为结果 <?php $arr1 = array('a'=>'PHP'); $arr2 = array('a' ......