排序
MD_
不拼一下 你怎么知道你不会成功!
展开
-
Leetcode 611. 有效三角形的个数【通过排序减少时间复杂度】
文章目录问题描述解题报告实现代码参考资料问题描述给定一个包含非负整数的数组,你的任务是统计其中可以组成三角形三条边的三元组个数。示例 1:输入: [2,2,3,4]输出: 3解释:有效的组合是:2,3,4 (使用第一个 2)2,3,4 (使用第二个 2)2,2,3注意:数组长度不超过1000。数组里整数的范围为 [0, 1000]。解题报告暴力解决的时间复杂度为 O(n3)O(n^3)O(n3)可以通过排序减少时间复杂度。排序后,当选定两个数之后:如果第三个数的索引边界原创 2020-07-28 11:27:22 · 209 阅读 · 0 评论 -
Leetcode 面试题45. 把数组排成最小的数
文章目录问题描述解题报告实现代码问题描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。解题报告自定义一个排序函数实现代码class Solution {private: static bool cmp(string a,string b){ return a+b<b+a; }public: ...转载 2020-03-31 22:16:17 · 221 阅读 · 0 评论 -
归并排序&逆序对
实现方法一:#include <iostream>#include<cstdio>#define maxn 10000int aa[maxn];using namespace std;int n;void Merge(int *A,int *B,int s,int m,int n){ int j,k; for(k=s,j=m+1; s<=m&&j<=n; k++)原创 2017-03-11 16:46:13 · 254 阅读 · 0 评论 -
排序方法总结
插入排序基本操作是:将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表#include <iostream>#include<stdio.h>using namespace std;#define maxn 105int a[maxn];void Swap( int *a, int *b ){ int t = *a; ...原创 2019-04-17 12:10:20 · 325 阅读 · 0 评论