算法
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 · 86 阅读 · 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_mapmap以红黑树为底层,自动排序。unordered_map以哈希表为底层,不会自动排序。原创 2022-01-28 11:09:49 · 1163 阅读 · 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 · 225 阅读 · 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 · 48 阅读 · 0 评论