- 博客(29)
- 资源 (1)
- 收藏
- 关注
原创 12051205
你的代码可能是这样的: 在有尾递归优化的情况下,最后一条语句不用压栈,不占用栈空间,因此空间复杂度为S(n)=S(left)+1 在平衡的时候,left=n/2,S(n)=S(n/2)+1,得S(n)=O(logn) 在树严重向左偏,left=n-1,S(n)=S(n-1)+1,得S(n)=O(n) 当树严重向右偏,left=1,S(n)=S(1)+1,得S(n)=O(1)从我前面的例子、图,以及还有代码来看,不管操作是插入、删除还是查找,时间复杂度其实都跟树的高度成正比,也就是 O(height)。
2025-03-21 21:02:23
585
原创 卡码网总结刷题
cincin是C++中, 标准的输入流对象,下面列出cin的两个用法,单独读入,和批量读入 cin的原理,简单来讲,是有一个缓冲区,我们键盘输入的数据,会先存到缓冲区中,用cin可以从缓冲区中读取数据。 注意1:cin可以连续从键盘读入数据 注意2:cin以空格、tab、换行符作为分隔符 注意3:cin从第一个非空格字符开始读取,直到遇到分隔符结束读取注意:这题错的同学请注意题目的提示“注意,测试数据不仅仅一组。也就是说,会持续输入N以及后面的a和b”,只有一次cin>&
2024-03-16 12:33:52
229
原创 leetcode刷题总结
1.sort()函数,默认的是对二维数组按照第一列的大小对每行的数组进行排序。所以可以加上cmp函数用按照任意列对数组进行排序。将区间[first,last)的元素赋值到当前的vector容器中,这个容器会清除掉vector容器中以前的内容。或者赋n个值为x的元素到vector容器中,这个nums.end()是取不到的,所以。从begin()开始有几个数就加上几。
2024-03-15 17:49:39
380
原创 FPGA刷题总结
35.下列说法错误的是()【A】为了避免wire信号出现X态,最好在声明时赋初始值0【B】一个模块例化多次,可以使用generate for循环减少代码量【C】模块例化时,需要将端口显式列出,即使某个端口未连接信号【D】循环表达式的循环次数必须为常数所以D错误。A选项,为了避免wire信号出现X态,最好在声明时赋初始值0,没有见过这种说法(但也没有找到证明它错误的权威的解析),但是wire型信号是可以在声明时赋初始值0的,例如:wire a=1’b0;B选项和C选项正确。正确答案:D。
2024-03-06 14:47:04
1154
原创 各种傅里叶变换
clc,clear,close all;N=1024;sig1=fmlin(N,0.15,0.25);%%暂态信号2sig2=fmlin(N,0.1,0.2);sig=sig1+sig2;%这个是估算瞬时频率figure(3);[f,t]=instfreq(sig1);plot(t,f);%短时傅里叶变换%就是这个tfrstftstft=MZJ_stft( sig );figure(1);imagesc( abs(s...
2022-05-09 18:47:30
1268
1
原创 python爬图片
import requestsimport osfrom bs4 import BeautifulSoupurl = input("输入网站:")#字典dic={ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39"}resp = re.
2022-04-14 20:50:30
464
原创 二分查找 2022/3/28
//二分查找//二分查找1.最左边的第一位//二分查找2.最右边的第一位#include <iostream>#include <vector>using namespace std;//最基本的二分查找无法确定找到的是哪一个最先找到的输出int FristBinarySearch(vector<int> nums,int target){ int left=0,right=nums.size()-1; int mid=0; while(left..
2022-03-28 23:58:37
302
原创 stringstream比较数字大小,string转int
165. 比较版本号 - 力扣(LeetCode) (leetcode-cn.com)#include<iostream>#include<string>#include<algorithm>#include<vector> #include<sstream>using namespace std;string fort_zero(string& s){ bool flag=0; int left=0,right=
2022-03-24 17:00:55
784
原创 stringstream分割任意字符
在 C++ 中,可以使用 istringstream 配合 getline 根据分隔符来分割字符串。istringstream, ostringstream, stringstream区别#这 3 个 stream 都可以通过头文件 #include <sstream> 引入。三者的区别如下: ostringstream : 用于执行 C 风格字符串的输出操作。 istringstream : 用于执行 C 风格字符串的输入操作。 stringstream : 同时.
2022-03-24 14:51:14
1176
原创 C++比较器
bool custom_compare(int a, int b) { int binary_count_a =0,binary_count_b=0,a_mid=a,b_mid=b; while(a) {binary_count_a ++;a &=a-1;} while(b) {binary_count_b ++;b &=b-1;} if(binary_count_a<binary_count_b) return true; el...
2022-03-24 14:07:46
1876
原创 二进制1的个数
方法1int bitcount (unsigned int n){ int count=0 ; while (n) { count++ ; n &= (n - 1) ; } return count ;}这个代码中核心的代码只有一行,就是 n &= (n - 1) ,我们分开看一下:n-1:一个二进制的数减1,就是将这个二进制最右边的那个1变成0,然后它后边的所有位置都变成1~ 举例:0011 0100,减1.
2022-03-24 14:05:28
285
原创 迭代器常用操作
1.通用操作1.1迭代器运算符1 *it返回迭代器it所指元素的引用、即解引用指回去2 反向迭代器坐标轴都是反的中心对称3 迭代器类型 容器类型::iterator 反向迭代器类型 容器类型::reverse_iterator#include <string>using namespace std;int main() { string tar="abcdefg"; // 迭代器类型是 容器类型::iterator for(strin...
2022-03-16 19:47:47
284
原创 2022/1/25
基本语法1.string之间的比较大小原则:找第一个不同的比较得结果,对大小写敏感,A<a大写变小写'A'+32='a'#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;int main(){ vector<string> words={"a","Aee", "b", "app", "app.
2022-01-25 21:52:03
282
原创 string类C++笔记
#include<string>头文件1.定义初始化赋值输入输出对象#include <iostream> #include <string> //getline(cin,str1) 用于string类 using namespace std;int main(){ //定义string对象 string str1; //初始化string对象 string str2="c++"; //复制初始化..
2022-01-25 21:48:23
495
原创 getline()、cin.get()和cin.getline()
1.<istream>中的cin.getline(m,5) 用于char数组cin>>cin默认使用空白(空格、制表符、换行符)来确定字符串的结束位置:在<istream>中的getline()函数有两种重载形式:cin.getline()istream& getline (char* s, streamsize n );istream& getline (char* s, streamsize n, char delim );用法:接收一
2022-01-25 20:08:17
471
原创 2022/1/24
基本语法1.sort与比较器使用:#include <algorithm> using namespace std;时间复杂度:n*lg(n)形式:sort(first_pointer,first_pointer+n,cmp)第一个参数是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。第二个参数相对较好理解,即首地址加上数组的长度n(代表尾地址的下一地址)。最后一个参数是比较函数的名称(自定义函数cmp),即第三个参数可以缺省,这样sort会默认.
2022-01-24 20:41:17
5119
原创 2022/1/23笔记
基本语法1.输入输出1.<istream>中的getline()函数cin.getline(m,5)cin>>cin默认使用空白(空格、制表符、换行符)来确定字符串的结束位置:在<istream>中的getline()函数有两种重载形式:cin.getline()istream& getline (char* s, streamsize n );istream& getline (char* s, streamsize n, cha.
2022-01-23 23:03:00
287
原创 2022/1/22笔记
基本语法1.sort对vector排序C++ vector用法详解 分为升序和降序两排序方式: vector<int>v; sort(v.begin(), v.end(),less<int>());//升序 sort(v.begin(), v.end(),greater<int>());//降序 sort(obj.begin(),obj.end());//从小到大 reverse(obj.begin().
2022-01-22 23:08:45
298
原创 2022/1/22笔记背包问题
首先是背包分类的模板:1、0/1背包:外循环nums,内循环target,target倒序且target>=nums[i];2、完全背包:外循环nums,内循环target,target正序且target>=nums[i];3、组合背包:外循环target,内循环nums,target正序且target>=nums[i];4、分组背包:这个比较特殊,需要三重循环:外循环背包bags,内部两层循环根据题目的要求转化为1,2,3三种背包类型的模板1、最值问题: dp[i] = m
2022-01-22 14:26:24
544
原创 2022/1/21笔记
01背包问题class Solution {public: bool canPartition(vector<int>& nums) { int len=nums.size(); int mid=0,tar=0; for (int a:nums) mid+=a; if(mid%2!=0) return false; tar=mid/2; bool pd[len+1][tar+1
2022-01-21 23:55:23
4510
原创 2022/1/20笔记
1.unordered_map用法C++ STL unordered_map容器用法详解 (biancheng.net)C++中的unordered_map用法详解#include<string> #include<iostream> #include<unordered_map>using namespace std; int main(){ unordered_map<string, int> dict; //.
2022-01-21 09:39:56
178
原创 2022/1/19
1.知识点break continueclass Solution {public: string modifyString(string s) { int len=s.size(); for(int i=0;i<len;i++) { if(s[i]=='?') { for(char res='a';res<='z';res++) .
2022-01-20 10:53:44
80
原创 简单排序记忆
1.冒泡排序void Bubble(vector<int>& arr){ for(int i=0;i<arr.size()-1;i++){ 0 len-1 for(int j=0;j<arr.size()-i-1;j++){ 0 len-1-i if(arr[j]>arr[j+1]) swap(arr[j],arr[j+1]); .
2022-01-18 19:37:40
174
原创 2022/1/18
1.除二操作/2与>>1而>> 1和/ 2在n为负奇数时截断的反向不一样。-5 / 2 = -(int)2.5 = -2,这里是把绝对值变小了,加个负号,结果就变大了。-5 >> 1 = (1011) >> 1 = (1101) = -3,假设用4-bit表示一个整数,补码表示。发现结果变小了。-5 / 2 = -2 5 / 2 = 2。这表明除二是向零取整-5 >> 1 = -3 5 >> 1 = .
2022-01-18 18:43:11
291
原创 2022/1/17笔记
知识点string1.赋值#include <iostream>#include <string>using namespace std;int main() { //初始化 string类型 string a; a = "hello";//给a赋值 “hello” string a1(a);//调用构造函数生成a1,a1是a的复制 cout << a1 <<endl; string a2 (a,.
2022-01-17 19:58:54
88
原创 2022/1/16笔记
#include<iostream>using namespace std;int main(){int p[3][5];int len=sizeof(p)/sizeof(int);int len2=sizeof(p[0])/sizeof(int);int len3=len/len2;printf("数组的第一维长度是 %d,第二维长度是 %d\n",len3,len2);return 0;}数组的第一维长度是 3,第二维长度是 5题目1二分查找课程列表_牛客网 (.
2022-01-16 20:38:16
435
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人