![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构+cpp
入木
抬头看 天空是蓝色的
展开
-
数组中的第k个最大的元素--优先级队列、排序、堆、排序
第一大的是6,第二大的是5,所以输出5方法1:排序–时间复杂度不好O(N*logN)–底层是快排升序降序或者方法2:优先级队列–空间复杂度不好O(N+klogN)–建堆为N,每次出数据向下调为logN,出k次为klogN空间复杂度为O(N)–k个数大堆底层要存储方法3–最优方法*时间复杂度:O(K+(N-k)logK)–建立k个数的小堆,N-K个数进行pop和push再调整k个数的小堆空间复杂度:O(k)–建立k个数的小堆当N远大于K时,这种方法更有。尤其是N大..原创 2021-12-08 21:48:35 · 333 阅读 · 0 评论 -
最小栈 --stack
O(1)原创 2021-12-07 21:51:04 · 75 阅读 · 0 评论 -
出栈和入栈是否相等 --stack
原创 2021-12-07 22:08:31 · 254 阅读 · 0 评论 -
删除有序数组中的重复项--vector
class Solution {public: int removeDuplicates(vector<int>& nums) { if(nums.size()<2) { return nums.size(); } int j=1; for(int i=0;i<nums.size()-1;++i) { if(nums[i]!=nums[i+1]) { .原创 2021-11-07 20:51:36 · 105 阅读 · 0 评论 -
只出现一次的数字--vector
1class Solution {public: int singleNumber(vector<int>& nums) { int ret=0; // for(int i=0;i<nums.size();i++) // { // ret=ret^nums[i]; // } // for(auto e:nums) // {原创 2021-11-06 19:23:09 · 148 阅读 · 0 评论 -
逆波兰表达式(后缀表达式)的运算 --stack
原创 2021-12-08 12:20:43 · 129 阅读 · 0 评论 -
杨辉三角 --vector
原创 2021-11-06 20:11:48 · 153 阅读 · 0 评论 -
反转字符串中的单词--String
swapclass Solution {public: string reverseWords(string s) { int i=0; int begin=0,end; for(i=0;i<s.size()+1;i++) { if(s[i]==' '|| s[i]=='\0') { for(end=i-1;begin<end;begi.原创 2021-10-31 21:43:22 · 108 阅读 · 0 评论 -
有条件的反转字符串--String
class Solution {public: //使用c++库里面的reverse string reverseStr(string s, int k) { //每次走2k个字符 for(int i=0;i<s.size();i=i+2*k) { //当字符个数大于k小于2k的时候,反转前k个字符 if(i+k<=s.size()) { reverse.原创 2021-10-31 20:16:16 · 107 阅读 · 0 评论 -
反转字符串--String
运用快排的思想,左右去找字符,找到后去交换原创 2021-10-24 18:16:01 · 83 阅读 · 0 评论 -
验证回文串--String
简单写法复杂写法原创 2021-10-30 17:06:05 · 111 阅读 · 0 评论 -
两个字符串相加--String
O(N^2)因为insert头插需要挪动数据来插入O(N)原创 2021-10-30 17:41:29 · 251 阅读 · 0 评论 -
字符串转整数--string
class Solution {public: int StrToInt(string str) { int flag=1; long long number=0; for(int i=0;i<str.size();i++) { //开头为空格· // if(str[i]==' ') // { // continue; // } .原创 2021-11-14 11:00:59 · 283 阅读 · 0 评论 -
字符串中的(第一个唯一/只出现一次)的字符--String
运用计数排序的思想原创 2021-10-30 10:30:24 · 166 阅读 · 0 评论 -
字符串最后一个单词的长度--String
原创 2021-10-30 10:39:12 · 108 阅读 · 0 评论 -
计算日期差值
#include <iostream>#include <string>using namespace std;//记录日期是当年的第几天int getCount(int year, int month, int day){ int monthDay[13] = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; int count= 0; count = monthDay[m.原创 2021-10-29 20:17:54 · 194 阅读 · 0 评论 -
知道年和当年的第几天打印出规范的日期
#include<iostream>using namespace std;int main(){ int year,month,day,n; cin>>year>>n; static int monthdays[13]={0,31,59,90,120,151,181,212,243,273,304,334,356}; int i; for(i=1;i<=13;i++) { if(n<=.原创 2022-04-16 19:41:13 · 353 阅读 · 0 评论 -
计算这个日期为这一年的第几天
先把1-i的天数算出来放到数组,例如monthDay[1]–算1月的天数,monthDay[2]–算的是1月和二月的天数…再算天数,例如10月就先算前九个月的天数和即monthDays[9]再加上day再判断是否为闰年,若为闰年则多加一天...原创 2021-10-23 19:01:55 · 181 阅读 · 0 评论 -
求1~n的和的两种方法,不能使用公式/递归/循环/比较大小
1、构造函数实现内部类实现原创 2021-10-20 19:25:00 · 70 阅读 · 0 评论