排序
csu_xiji
这个作者很懒,什么都没留下…
展开
-
力扣 611. 有效三角形的个数 排序 双指针
https://leetcode-cn.com/problems/valid-triangle-number/思路一:排序+二分,枚举较小的两条边i、ji、ji、j,然后通过二分找到最大的满足a[i]+a[j]>a[k]a[i]+a[j]>a[k]a[i]+a[j]>a[k]的kkk,那么它们对答案的贡献为k−jk-jk−j,代码略。思路二:当iii确定的时候,显然jjj越大,kkk也越大,因此可以利用双指针来做,每次把j+1j+1j+1,然后找到满足题意的最大的kkk统计贡献即可。原创 2021-08-05 00:43:34 · 183 阅读 · 0 评论 -
力扣 1877. 数组中最大数对和的最小值 贪心 排序
https://leetcode-cn.com/problems/minimize-maximum-pair-sum-in-array/思路:这个贪心还是比较好想的……因为要让数对的最大值最小,必然要让最小的和最大的配对,第二小的和第二大的配对,以此类推……正确性可以用反证法证明。class Solution {public: int minPairSum(vector<int>& nums) { sort(nums.begin(),nums.end())原创 2021-07-21 19:27:22 · 101 阅读 · 0 评论 -
力扣 1846. 减小和重新排列数组后的最大元素 排序 贪心
https://leetcode-cn.com/problems/maximum-element-after-decreasing-and-rearranging/思路:想到排序后就很简单了……第一个位置确定后,每个位置的最大值已经确定了,再满足一下限制即可。class Solution {public: int maximumElementAfterDecrementingAndRearranging(vector<int>& arr) { sort(a原创 2021-07-16 20:02:16 · 114 阅读 · 0 评论 -
力扣 179. 最大数 贪心 排序
https://leetcode-cn.com/problems/largest-number/思路:严格证明不太会……先把每个数字转换成字符串,那么对于字符串a、ba、ba、b,如果a+b>b+aa+b>b+aa+b>b+a就让aaa在bbb前面,按照这个方式排序即可。class Solution {public: string largestNumber(vector<int>& nums) { vector<string>原创 2021-04-13 13:12:12 · 104 阅读 · 0 评论 -
PIPIOJ 1413: 士兵排阵Ⅲ 带权中位数问题
http://pipioj.online/problem.php?id=1413思路:带权中位数问题,详细证明参见百度百科。先给出结论:∑i=1n∣xi−x∣∗wi\sum_{i=1}^{n}|x_i-x|*w_i∑i=1n∣xi−x∣∗wi的最小值当且仅当x=x(∑i=1nwi)/2x=x_{(\sum_{i=1}^nw_i)/2}x=x(∑i=1nwi)/2(此处不细致考虑下标问题)时取得。这里给出我自己的理解(非严谨证明),我们知道∑i=1n∣xi−x∣\sum_{i=1}^{n}|x原创 2021-03-06 17:28:17 · 164 阅读 · 3 评论 -
力扣 561. 数组拆分 I 贪心
https://leetcode-cn.com/problems/array-partition-i/思路:贪心,结论很简单,从小到大排序后取奇数位置的和即为答案,证明略去。class Solution {public: int arrayPairSum(vector<int>& nums) { sort(nums.begin(),nums.end()); int n=nums.size(),ans=0; for(int i原创 2021-02-18 00:46:20 · 158 阅读 · 0 评论 -
力扣 147. 对链表进行插入排序 链表+排序
https://leetcode-cn.com/problems/insertion-sort-list/思路:实现链表的插排即可,由于单向链表没有preprepre指针,所以找插入位置时只能从前往后找,搞一个哨兵方便操作。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(N原创 2020-08-06 00:06:58 · 171 阅读 · 0 评论 -
力扣 148. 排序链表 归并排序(递归/非递归)+骚操作
https://leetcode-cn.com/problems/sort-list/思路一:由于链表这种数据结构的特殊性,想要在O(nlgn)O(nlgn)O(nlgn)时间复杂度下完成排序,就只能选择归并排序啦。递归版的很简单,利用快慢指针计算出链表中点,将链表一分为二然后递归下去即可。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; *原创 2020-08-05 13:28:25 · 408 阅读 · 0 评论 -
力扣 面试题45. 把数组排成最小的数 贪心
https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/思路:首先把每个整数都转换成字符串,关键是如何组合这些字符串,显然对于任意两个字符串s1、s2s_1、s_2s1、s2来说,如果s1+s2<s2+s1s_1+s_2<s_2+s_1s1+s2<s2+s1,就应该把s1s...原创 2020-04-23 20:51:17 · 189 阅读 · 0 评论 -
Round A 2020 - Kick Start 2020 Allocation 贪心
https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ffc7/00000000001d3f56题目大意:给nnn个房子,每个房子要花费aia_iai元,现在你有BBB元,求最多能买多少个房子。思路:贪心,把房子从小到大排序扫一遍。#include<bits/stdc++.h>#define...原创 2020-03-22 16:58:12 · 405 阅读 · 0 评论 -
堆排序&快速排序+优化 随机选取基准值+插入排序优化+相同元素聚集优化
写在前面虽然很早就知道快排的思想了,但是并没有自己写过。其实写过最朴素的版本的,于是非常轻易的被卡成了O(n2)O(n^2)O(n2)的复杂度233333233333233333。最近心血来潮决定写一发优化的快排。基准值优化基准值的选取对时间复杂度的影响还蛮大的,固定选择某一个位置的值作为基准值的快排在处理有序、重复等数组时可能会达到O(n2)O(n^2)O(n2)的复杂度。关于这一项的优化...原创 2020-03-21 14:52:35 · 669 阅读 · 0 评论 -
codeforces 1294B Collecting Packages 排序+贪心+思维
https://vjudge.net/problem/CodeForces-1294B题目大意:机器人初始位置为(0,0)(0,0)(0,0),且它每一步只能选择向上走或者向右走,现在给出nnn个包裹的位置,保证没有多个包裹在同一位置,请你输出一种字典序最小的移动方案使得机器人可以拿到所有的包裹,否则输出NONONO。思路:首先考虑什么时候有解,我们把包裹按照xxx从小到大,若xxx相等则...原创 2020-03-12 12:36:16 · 185 阅读 · 0 评论 -
codeforces 1300B Assigning to Classes 排序
https://vjudge.net/problem/CodeForces-1300B题目大意:一个有2∗k+12*k+12∗k+1个元素的数组的中位数定义为:将该数组排序后,中位数=ak+1=a_{k+1}=ak+1。现在有2∗n2*n2∗n个学生,第iii个学生的能力值为aia_iai,你需要将他们分成两部分,保证每一部分都有人且总数为奇数,问两部分的中位数的差的绝对值的最小值是多少。...原创 2020-02-11 11:50:31 · 289 阅读 · 0 评论 -
Codeforces 375 B Maximum Submatrix 2 计数排序
http://codeforces.com/problemset/problem/375/BYou are given a matrix consisting of digits zero and one, its size is n × m. You are allowed to rearrange its rows. What is the maximum area of the subm...原创 2019-03-25 11:20:34 · 242 阅读 · 0 评论