- 博客(17)
- 收藏
- 关注
原创 1418. 点菜展示表&&map嵌套map
map和vector混合使用:https://blog.youkuaiyun.com/qq_42852337/article/details/108250024map中嵌套mapclass Solution {public: vector<vector<string>> displayTable(vector<vector<string>>& orders) { unordered_map<int,map<str
2021-07-07 19:21:29
133
原创 deque双向链表 && 剑指offer59Ⅰ&剑指 Offer 59 - II. 队列的最大值
deque可以在头尾两端分别做元素的插入和删除操作。1.pop_front();pop_back();push_front();push_back().2.deque.size();//返回容器中元素的个数;可以用sort排序。3.deque.empty();//判断容器是否为空4.deque.resize(num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。如果容器变短,则末尾超出容器长度的元素被删除。5.deque.resize(num, elem); //重新指定容
2021-07-05 17:39:29
150
原创 LCP 07. 传递信息 && 53 && 451
LCP 07. 传递信息是简单题 但是我做了很久。。。。1.整形vector2.构造二叉树 选择的层次遍历3.删选相应步数上符合的点因为给的relation长度小于90,所以O(n^2)可以做。class Solution {public: int numWays(int n, vector<vector<int>>& relation, int k) { queue<int>q; q.push(0);
2021-07-03 16:12:42
90
原创 string && 剑指offer35 unordered_map
void EraseSpace(string &s) { const char ch = ' '; s.erase(s.find_last_not_of(" ") + 1); s.erase(0, s.find_first_not_of(" ")); } 消除string前后空格。1、find_first_not_of()函数正向查找在原字符串中第一个与指定字符串(或字符)中的任一字符都不匹配的字符,返回它的...
2021-06-30 23:18:26
166
3
转载 stringstream
// using stringstream. #include <iostream> #include <sstream> #include <string> #include <map>using namespace std; // 统计单词数量int countWords(string str) { stringstream s(str); // 以空格为分隔符,分割每个单词 string word; // 存储单个的单词
2021-06-30 16:59:53
86
原创 二叉树的递归问题
二叉树层数深度搜索:class Solution {public: int maxDepth(TreeNode* root) { if(!root)return 0; return (max(maxDepth(root->left),maxDepth(root->right))+1); }};广度搜索:/** * Definition for a binary tree node. * struct TreeNode { * int v
2021-05-05 22:27:02
161
1
原创 二叉树的遍历
前序遍历1.迭代:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(null
2021-04-22 22:43:53
101
原创 数据结构leetcode1——链表
图//邻接表int vertices[5] = {1, 2, 3, 4, 5};vector<vector<int>> edges;vector<int> edge_1 = {1, 2, 3, 4};vector<int> edge_2 = {0, 3};vector<int> edge_3 = {0, 4};vector<int> edge_4 = {0, 1, 4};vector<int> edge_5
2021-04-20 21:04:43
108
原创 数组类型题
leetcode 283 移动0我的想法一开始是把非0和0互换,主要的小bug是全0与全非0情况下的错误。class Solution {public: void moveZeroes(vector<int>& nums) { int i = 0; int flag=0; for (int k = 0; k < nums.size(); k++) { if (nums[k] == 0)
2021-04-11 22:44:47
229
原创 两数之和&map
两数之和使用map遍历一次:class Solution {public: /** * * @param numbers int整型vector * @param target int整型 * @return int整型vector */ vector<int> twoSum(vector<int>& numbers, int target) { // write code here
2021-03-31 16:37:27
126
原创 动态规划&查找字母
最长公共子串&动态规划递推公式:如果a[i] == a[j], 那么dp[i][j] = dp[i-1][j-1] + 1; 否则 dp[i][j] = 0;#include <iostream>using namespace std;int lcs(string a, string b){ int maxLen = 0; a.insert(0, 1, ' ');//string类中的函数 b.insert(0, 1, ' ');//加一行空格,是[
2021-03-31 16:36:54
109
原创 list链表
结点包括数据域和指针域, 最后一个指针域null。优点:可以对任意位置快速插入或删除元素。动态存储分配,不会内存浪费和溢出。缺点:对于容器的遍历速度没有数组快。占用空间比数组大。STL中的链表 双向循环(最后一个节点不为null)链表,链表中的迭代器双向迭代。函数原型:#include<list>list<int>lst(10,1000);//十个一千lst.pushi_back(10);push_back()是把插入元素直接放入链表结尾。const_itera
2021-03-31 16:36:12
92
原创 递归&动态放苹果
二维动态数组的分配Q:杨辉三角中的各行偶数搜索A:想法一:输入的行数n大小不确定,我要做出的二维数组就是动态内存的new一开始写的是int (*cp)[n]=new int [n][2*n-1],但是使用new若该数组是多维数组,除了第一个维度可以是变量之外其余都必须是常量。所以这种写法是错误的。想法二:二维数组由一维数组组成,第一层的一维中存的是每一行的首地址,即每个数组元素都指向一片动态内存空间new int [row],这样还有个好处,杨辉三角比一般矩形可以节省内存。所以第一层int
2021-03-27 10:00:49
126
原创 ch6 数组、指针与字符串
数组定义:类型说明符 数组名[常量表达式][常量表达式]…注意是方括号,多[]表示多维由于数组有下标,给一组数据一种顺序信息。下标从0开始。a[i]=i*2-1;a[i][j]=i*j;数组元素次序存放,地址连续,元素间物理地址相邻。数组名是数组首元素的内存地址。数组名是常量,不可被重新赋值。二维数组是按行存储,多维类推。static a[2][3]={{1},{2,3,4}};//可缺少某些部分初始值二维列出全部初始值也只能省略第一维,不能省略所有下标。...
2021-03-25 14:53:33
209
原创 c++ ch5数据共享与保护
作用域从小到大:函数原型作用域:作用域是形参表中;(块)局部作用域:初始化的函数体{}之内;类作用域:类中可用,类外public可访问类名.对象名。静态成员的引用访问&非静态成员的指针访问;文件作用域/静态作用域:起始于声明点,整个文件有效。可见性内层域向外层域,可见才能引用。内外层标识符如果重名了,就会导致外层在内层中不可见。如上段程序输出 1 5,因为同名的局部作用域在第一个cout时被覆盖不可见。int i;//文件int main(){i=5;//为全局变量赋
2021-03-17 23:10:28
161
原创 2021-03-17
汽水瓶输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示小张手上的空汽水瓶数。n=0表示输入结束,你的程序不应当处理这个问题我的想法是子程序算出每一轮上能换到的汽水瓶数目,然后叠加输出,并且剩下一个输出现有,剩下两个输出+1,但是这样要注意的是多分枝下每一个都要return。问题还可以简化,比如下面的递归方法。每次拿3个瓶子换到1个瓶子,再考虑总数-2的数目可以换到多少个瓶子,逐层简化到最后2/1的情况。不会有3/0的情况结束。所以只要知道
2021-03-17 20:17:19
89
原创 c++practice
c++学习笔记清华mooc笔记补之前的听课笔记-3.16ch1-4ch1#include //编译预处理命令 包含cout cin等输入输出流的头文件 给出了语句声明using namespace std;//iostream的名字空间在一个标准的名字空间中,防止后续重名字符串/0 表示结束const 符号常量 ,定义时给定初始值,const float pi=3.14159 int r; cout << "input radius \n"<< endl; c
2021-03-16 22:50:50
210
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人