- 博客(25)
- 收藏
- 关注
原创 字符数量从大到小
输入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 145
原创 乘积小于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 110
原创 生成镜像树
递归生成镜像树#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 107
原创 单例模式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 53
原创 实现多线程同步
实现多线程同步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 82
原创 五张扑克牌,判断是不是顺子
字节测开一面五张扑克牌,判断是不是顺子输入: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 521 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 88
原创 合并两个有序链表
合并两个有序链表#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 85
原创 合并两个有序的数组
合并两个有序的数组#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 75
原创 提取偶数位字符串
给一个字符串,提取出其中偶数位的字符,组成一个新的字符串并打印出来,另外要检验输入字符串的合法性,即是否只包含数字、大小写字母,且长度小于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 2427
原创 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 78
原创 反转链表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 68
原创 判断链表是否有环
创建链表,判断链表是否有环#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 88
原创 层序创建二叉树
层序输入字符串创建二叉树层序输出二叉树示例:输入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 894
原创 路径之积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 112
原创 路径之积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 89
原创 路径之积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 148
原创 盛最多水的容器
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 100
原创 展开括号(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 296
原创 快速排序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 58
原创 归并排序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 65
原创 堆排序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 58
原创 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 70
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人