
刷题
在校刷题的部分记录
viai_youme
这个作者很懒,什么都没留下…
展开
-
展开括号(a(b(c)<3>)<2>d)c++
//有一种固定的字符串速记方式,如a(b)<3>c表示b重复三次,//即abbbc,可能存在嵌套,如a(b©<3>)<2>d表示abcccbcccd,//输入速记形式,输出原本的字符串。#include <iostream>#include <string>#include<stack>using namespace std;string reverseString(string &s) { //if (s.s原创 2021-08-14 11:19:01 · 310 阅读 · 0 评论 -
字符数量从大到小
输入dgccc 输出cccdg输入dgggCcc 输出gggccdC输入一个字符串,按照字符串中字符的数量从大到小输出#include<iostream>#include<unordered_map>#include<string>#include<algorithm>using namespace std;bool comp(const pair<char, int>& a, const pair<char,...原创 2021-09-15 20:24:28 · 159 阅读 · 0 评论 -
快速排序c++
#快速排序#include <iostream>#include <vector>using namespace std;int partition(vector<int> &a, int left, int right) { int pivot = a[left]; while (left < right) { while (left<right&&a[right]>pivot) { --right;原创 2021-08-12 19:42:41 · 67 阅读 · 0 评论 -
层序创建二叉树
层序输入字符串创建二叉树层序输出二叉树示例:输入1 2 3 4 # 5 # # # # # -> 输出[[1][2,3][4,5]]#include<iostream>#include<algorithm>#include<string>#include<queue>using namespace std;class TreeNode{public: int val; TreeNode *left; TreeNode *原创 2021-08-17 20:41:39 · 924 阅读 · 0 评论 -
路径之积c++(true or flase)
给一个二叉树和目标值,判断是否存在从根节点到叶子节点的乘积等于目标值的路径;#include<iostream>#include<vector>#include<algorithm>using namespace std;class TreeNode {public: int val; TreeNode *left; TreeNode *right; TreeNode() :val(0),left(nullptr),right(nullptr){}原创 2021-08-15 14:31:17 · 163 阅读 · 0 评论 -
反转链表c++
反转链表输入只能输入0~9的数字字符串#include<iostream>#include<algorithm>#include<string>#include<queue>using namespace std;class LinkNode{public: int val; LinkNode *next; LinkNode() :val(0), next(nullptr){} LinkNode(int value) :val(val原创 2021-08-18 15:42:44 · 78 阅读 · 0 评论 -
合并两个有序的数组
合并两个有序的数组#include<iostream>#include<algorithm>#include<string>#include<queue>using namespace std;void ABsort(int A[], int B[], int m, int n, int seq) { while (m > 0 && n > 0) { if (A[m - 1] <= B[n - 1]) {原创 2021-08-19 10:59:02 · 83 阅读 · 0 评论 -
合并两个有序链表
合并两个有序链表#include<iostream>using namespace std;class ListNode {public: int val; ListNode *next; ListNode():val(),next(nullptr){} ListNode(int value):val(value), next(nullptr) {}};ListNode *mergeNode(ListNode *l1, ListNode *l2) { if (!l1&原创 2021-08-19 11:32:39 · 99 阅读 · 0 评论 -
单例模式c++
懒汉模式mutex m;class Singleton{public: static Singleton* getInstance() { if (instance == nullptr) { m.lock(); if (instance == nullptr) { instance = new Singleton(); } m.unlock(); } return instance; }private: Singleton(); ~Single原创 2021-09-12 19:51:42 · 63 阅读 · 0 评论 -
路径之积c++(输出路径节点数量)
给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之积等于targetSum 的路径的数目。#include<iostream>#include<vector>#include<algorithm>using namespace std;class TreeNode {public: int val; TreeNode *left; TreeNode *right; TreeNode() :val(0),left原创 2021-08-15 15:27:36 · 127 阅读 · 0 评论 -
判断链表是否有环
创建链表,判断链表是否有环#include<iostream>#include<algorithm>#include<string>#include<queue>using namespace std;class LinkNode{public: int val; LinkNode *next; LinkNode() :val(0), next(nullptr){} LinkNode(int value) :val(value), ne原创 2021-08-18 11:22:42 · 97 阅读 · 0 评论 -
五张扑克牌,判断是不是顺子
字节测开一面五张扑克牌,判断是不是顺子输入:A (1) 2 3 4 5 输出:true输入:10 J(11) Q(12) K(13) A(1) 输出:false#include <iostream>#include<vector>using namespace std;bool islist(vector<char> &a) { for (int i = 1; i < 5; i++) { if (a[i]-a[i - 1] == 1)原创 2021-08-24 20:23:47 · 548 阅读 · 1 评论 -
输入输出c++
输入输出#include<iostream>#include<vector>#include<algorithm>using namespace std;int main() { int m, n; vector<int> res; while (cin >> m) { res.emplace_back(m); if (cin.get() == '\n') { break; } } cin >原创 2021-08-21 16:29:02 · 101 阅读 · 0 评论 -
k个一组链表反转
k个一组链表反转#include<iostream>#include<algorithm>#include<string>#include<queue>using namespace std;class LinkNode{public: int val; LinkNode *next; LinkNode() :val(0), next(nullptr){} LinkNode(int value) :val(value), next(nu原创 2021-08-18 19:15:45 · 93 阅读 · 0 评论 -
提取偶数位字符串
给一个字符串,提取出其中偶数位的字符,组成一个新的字符串并打印出来,另外要检验输入字符串的合法性,即是否只包含数字、大小写字母,且长度小于20,如果是非法字符串,打印ERROR。#include<iostream>#include<algorithm>#include<string>#include<queue>using namespace std;int main() { string input; getline(cin,input原创 2021-08-18 19:48:38 · 2515 阅读 · 0 评论 -
路径之积c++(输出路径节点)
给一个二叉树和目标值,找出所有从根节点到叶子节点路径总积等于给定目标和的路径。#include<iostream>#include<vector>#include<algorithm>using namespace std;class TreeNode {public: int val; TreeNode *left; TreeNode *right; TreeNode() :val(0),left(nullptr),right(nullptr){}原创 2021-08-15 14:57:49 · 99 阅读 · 0 评论 -
实现多线程同步
实现多线程同步1普通加锁mutex m1;void thread1(int a) { for (int i = 0; i < 100; ++i) { m1.lock(); cout <<"thread1"<<" "<< m++<<endl; m1.unlock(); } }2lock_guard 加锁mutex m1;void thread1(int a) { lock_guard<mutex> l1(原创 2021-08-30 21:34:40 · 92 阅读 · 0 评论 -
生成镜像树
递归生成镜像树#include<iostream>#include<stack>#include<queue>using namespace std;class TreeNode {public: int val; TreeNode *left; TreeNode *right; TreeNode(int value):val(value),left(nullptr),right(nullptr){}};TreeNode *mirror(Tre原创 2021-09-13 19:59:30 · 119 阅读 · 0 评论 -
乘积小于k的子数组
#include<iostream>#include<vector>using namespace std;int numSubarrayProductLessThanK(vector<int>& nums, int k) { int len = nums.size(); int i = 0; int j = 0; int res = 0; int cur = 1; for (; j < len; j++) { cur *= num原创 2021-09-13 20:50:20 · 125 阅读 · 0 评论 -
盛最多水的容器
leetcode11. 盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49#inc原创 2021-08-14 20:34:31 · 110 阅读 · 0 评论 -
堆排序c++
#堆排序#include <iostream>#include <queue>using namespace std;//堆排序//void adjustHeap(int a[], int parent, int len) {// int temp = a[parent];// int child = 2 * parent + 1;//// while (child <=len ) {// if (child + 1 <= len &&am原创 2021-08-12 19:31:11 · 67 阅读 · 0 评论 -
归并排序c++
#归并排序#include <iostream>using namespace std;void merge(int a[], int temp[], int left, int mid, int right) { int m = right - left + 1; int i = left; int j = mid + 1; int k = 0; while (i <= mid && j <= right) { if (a[i] < a原创 2021-08-12 19:40:49 · 70 阅读 · 0 评论 -
2021-08-10
队列从上到下打印二叉树//bfs打印树节点#include#include#includeusing namespace std;class TreeNode {public:int val;TreeNode *left;TreeNode *right;TreeNode(int value):val(value),left(nullptr),right(nullptr){}};void bfs(TreeNode root, vector<vector> &res原创 2021-08-10 14:33:59 · 75 阅读 · 0 评论