算法
是尔彧不是二或
这个作者很懒,什么都没留下…
展开
-
返回char* p
输入char* 的字符串,输出char* 的字符串的反转。#include <bits/stdc++.h>using namespace std;char* str(char* str){ int i,j; char tmp; int len = strlen(str); char newstr[len]; //char newstr[] = "abc"; for(i=0; i< strlen(str); i++原创 2022-05-06 21:28:30 · 554 阅读 · 0 评论 -
CodeForce 1215B 题解
题目出处:Problem - B - Codeforces题目描述:给你一个序列包含n个元素的序列 a1,a2,…,an(每个元素 ai≠0)。你需要计算如下两个值:有多少对数(l,r)(l≤r) 满足al⋅al+1…ar−1⋅ar 的结果为正; 有多少对数(l,r)(l≤r) 满足al⋅al+1…ar−1⋅ar 的结果为负。即:这个序列中有多少子串(子串即连续子序列)的乘积为正,有多少子串的乘积为负。输入格式输入的第一行包含一个整数 n(1≤n≤2⋅105)—— ...原创 2022-03-13 16:04:18 · 338 阅读 · 0 评论 -
输出频率最高且最先出现的字符
题目假设有一个字符串,字符串内部的所有字符都是在ascii编码的范围内,编码求出字符串中出现频率最高的字符,如果频率最高的字符有几个字符出现的频率一样,则输出最先出现的字符。如输入串为 “hello world, every body!”,则输出频率最高且最先出现的字符。#include<bits/stdc++.h>using namespace std;int main(){ string str = "bsydsssbbbfsdb"; map&l原创 2021-11-02 20:44:54 · 321 阅读 · 0 评论 -
自己实现一个LRU缓存
#include <bits/stdc++.h>using namespace std;class Node{public: int key; int value; Node* left; Node* right; Node(int x,int y): key(x),value(y),left(NULL),right(NULL){}};Node* dummyLeft = NULL;Node* dummyRight = NULL;int c.原创 2021-10-28 10:23:41 · 122 阅读 · 0 评论 -
多线程打印每个线程的线程ID
#include <iostream>#include<thread>#include<mutex>#include<condition_variable>using namespace std;mutex mu;condition_variable cv;int flag = 0;void print_id(int id){ unique_lock<mutex> lk(mu); for(int i=0; i&.原创 2021-10-28 10:21:54 · 1366 阅读 · 2 评论 -
创建链表&合并两个有序链表
1.创建链表#include<bits/stdc++.h>using namespace std;/*typedef struct ListNode{ int val; ListNode* next; ListNode() : val(0), next(NULL) {} ListNode(int x) : val(x), next(NULL) {} ListNode(int x, ListNode *next) : val(x), next(原创 2021-10-28 10:20:02 · 348 阅读 · 0 评论 -
C++ map相关操作
1.删除value是大写的map#include<bits/stdc++.h>using namespace std;//当我们删除了 it_pos 之后,it_pos 这个迭代器已经失效了,对其进行 it_pos++ 操作,//就是未知的操作,会引起异常。所以我们应该在删除 it_pos 之前就对其进行 ++。改成下面的代码就可以解决问题了。//c++ 11 之后,删除迭代器会返回指向下一个位置的迭代器void erase_upper(std::map<int, cha原创 2021-10-28 10:14:42 · 277 阅读 · 0 评论 -
回溯法解决全排列
#include<bits/stdc++.h>using namespace std;vector<vector<int>> result;vector<int> track;// 路径:记录在 track 中// 选择列表:nums 中不存在于 track 的那些元素// 结束条件:nums 中的元素全都在 track 中出现void backtrack(vector<int>& nums,vector<in.原创 2021-10-27 23:00:20 · 112 阅读 · 0 评论 -
创建二叉树&创建多叉树并层次化打印
创建二叉树:#include<bits/stdc++.h>using namespace std;/*typedef struct TreeNode{ int value; struct TreeNode* left; struct TreeNode* right;}TreeNode;*/class TreeNode{ public: int value; TreeNode* left; Tr..原创 2021-10-27 21:25:02 · 349 阅读 · 0 评论 -
设计在链式结构上实现简单选择排序算法
#include<stdio.h>typedef struct link{ int data; struct link* next;}Node;//根据a[] 建立一个单链表void create_list(Node*& list, int a[], int len, int index){ if (index >= len) return; list = new Node; list->data = a[index]; list->nex.原创 2020-07-21 17:57:08 · 1822 阅读 · 0 评论 -
排序算法总结
一、三种简单的初级排序算法(冒泡、选择、直接插入)1.冒泡排序每个数和自己隔壁的数两两对比,就像冒泡一样,右边开始有序,时间复杂度为O(n^2)#include<iostream>using namespace std;int main(){ int a[100]; int n; cin>>n; int i,j; ...原创 2018-09-04 13:22:11 · 245 阅读 · 0 评论 -
用DFS输出n个数的全排列(递归实现)
最近在研究DFS,可能脑子不太够吧,很多题都不知道怎么实现,全排列应该是最简单的题了。运行成功的代码如下所示:#include<stdio.h>#include<iostream>#include<string.h>using namespace std;int n;int vis[11] = {0} ;//访问数组 int numth[11] ;...原创 2018-03-27 10:58:48 · 3432 阅读 · 5 评论 -
关于DFS的几篇博客
1.入门的递归写法http://blog.csdn.net/coding_or_dead/article/details/523265192.有例子http://blog.csdn.net/qq_32183461/article/details/507059533.还有例子,讲了一个八皇后http://blog.csdn.net/u012348655/article/details/5075649...转载 2018-03-18 15:29:42 · 172 阅读 · 0 评论