算法
we have a whole life
这个作者很懒,什么都没留下…
展开
-
Leetcode-217
第一种方法: 先试用C++内置算法sort来对数组进行排序,然后,从第一个元素开始两两比较,一旦出现相同的就返回true。 class Solution { public: bool containsDuplicate(vector<int>& nums) { sort(nums.begin(),nums.end()); int size=nums.size(); for(int i=0;i<size-1;i++){原创 2022-01-27 18:32:14 · 100 阅读 · 0 评论 -
set,map,unordered_set,unordered_map
我查了查: set和map底层是红黑树,unordered_set和unordered_map底层是哈希表。 底层 set,map 红黑树 unordered_set,unordered_map 哈希表 set和unordered_set,是集合,不能插入相同元素。 set以红黑树为底层,自动排序。 unordered_set以哈希表为底层,不会自动排序。 map和unordered_map map以红黑树为底层,自动排序。 unordered_map以哈希表为底层,不会自动排序。原创 2022-01-28 11:09:49 · 1184 阅读 · 0 评论 -
PTA:1006 换个格式输出整数
这个题很简单,但我还是整了一阵子。 第一次我写的程序是使用三个if语句。 #include<iostream> using namespace std; int main() { int x; cin>>x; if(x<10) { for(int i=1;i<=x;i++) cout<<i; } if(9<x&&x<100) { int gewei=x%10; x=x/10; int shiw原创 2021-09-03 13:47:35 · 256 阅读 · 0 评论 -
算法:冒泡排序
写在前面: 作为以后复习的依据,虽然是一个很简单的算法。 n个数据,那么 i:从1到第n-1个. j:从第n-1个到1. 显然,i+j=n这个公式不变. 所以代码可以是: (假设需要比较n个数据 注意:i表示比较的次数,j表示所需比较的数组元素的下标 第一种: 可以想到这就是很典型的那种 for(int i=num-1;i>0;i--)//i表示次数,i从num-1到1 { for(int j=0;j<i;j++)//j表示所比较数据的下标,j从0到i-1 { .原创 2021-09-01 18:35:14 · 58 阅读 · 0 评论