刷题
dididada~
在读研究生
展开
-
并发编程学习一
给定一组数据,以最快速度处理#include <thread>#include <mutex>#include <iostream>#include <vector>#include <math.h>using namespace std;/* 给定一组数据,用并发最快进行处理 *///这里是求0-MAX每个整数的平方累加和static const int MAX=10e8;static double sum=0;stat原创 2021-09-01 11:58:38 · 195 阅读 · 0 评论 -
实现一个string类
1.实现一个string类,要求有构造函数,拷贝构造函数、复制运算符、析构函数class String{public: String(const char *str=nullptr){ if(nullptr == str){ m_data=new char[1]; m_data[0]='\0'; }else{ int length=strlen(str); m_da原创 2021-08-17 14:30:27 · 419 阅读 · 0 评论 -
dfs-网格中的路径问题
1. 机器人的路径有个机器人坐在一个网格的左上角,网格 r 行 c 列。机器人只能向下或向右移动,但不能走到一些被禁止的网格(有障碍物)。设计一种算法,寻找机器人从左上角移动到右下角的路径。分析:起始点确定(左上角),目标点确定(右下角),只能向下或向右移动,只需求其中一条路径。即满足条件就可返回。class Solution {public: vector<vector<int>> pathWithObstacles(vector<vector<原创 2021-08-10 14:06:27 · 458 阅读 · 0 评论 -
刷题-最长上升子序列
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。并输出该子序列,如果有多个子序列,则输出字典序最小的一个。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2,5,7,101], [2,3,7,101],[2,3,7,18]...长度为 4 输出[2,3,7,18]解法:贪心原创 2021-08-08 15:57:44 · 171 阅读 · 0 评论 -
面试题-二维数组合并、滑动窗口
给定一个二维数组,二维数组里的每个数组都有序,将它们合并成一个有序的一维数组。如:array={{2,3,4},{1,2},{6,9,10,12}}解决:多路归并#include <bits/stdc++.h>using namespace std;//合并两个有序数组vector<int> mergeTwo(vector<int>& leftarr, vector<int>& rightarr){ int lenL=l原创 2021-07-28 09:39:38 · 396 阅读 · 0 评论 -
C++多线程交替打印1-100
#include <thread>#include <iostream>#include <mutex>#include <condition_variable>std::mutex data_mutex;std::condition_variable data_var;bool flag=true;int i=1;#define MAXNUM 10void printA(){ //i=9时就结束循环 while(i<原创 2021-07-27 16:18:55 · 1400 阅读 · 0 评论 -
面试题之大数问题
1.亿级数据N,整数,进行排序,有内存限制xMB分文件+归并(1)确定需要分的文件数m,N/m*4B<=xMB(2)对小文件中数据排序(3)多路归并将每个文件最开始的数读入(由于有序,为该文件最小数),存放在m个大小的data数组中;选择data数组中最小的数min_data,及其对应的文件索引index;将min_data写入results文件中,更新data数组(根据index读取该文件的下一个数);全部数据读取完成后结束。2.找出100亿个URL中重复的URL,每个URL占64原创 2021-07-24 16:55:55 · 265 阅读 · 0 评论 -
求最小生成树--普里姆算法和kruskal算法
这里写目录标题概念算法概念生成树:一个连通图的生成树是一个极小的连通子图,它含有图中全部的n个顶点,但只有足以构成一棵树的n-1条边。最小生成树:构造连通网的最小代价生成树算法算法思想:假设N=(V, {E})是连通网,TE是N上最小生成树中边集合。算法从U={a}, TE={}开始。重复下述操作:寻找从与a有关联的边中,权重最小的那条边,并且该边的终点b在顶点集合:(V-U)中,我们也把b加入到集合U中,并且输出边(a,b)的信息,这样我们的集合U就有:{a,b}。然后,我们寻找与a关联和b关联原创 2021-01-21 16:45:30 · 226 阅读 · 0 评论 -
回溯DFS法
1.抢占棋盘在下棋过程中,如果白子或者黑子将对方全部围住,则所围区域中的棋子将更换颜色。用1表示黑子,0表示白子,给出如下实例:1111010111010010因为第2行第3列的白子(0)和第三行第3列的白子(0)全被黑子包围,需要将这两个0变成1.结果变为:1111011111110010为了简化问题,只需找出所有被黑子围住的白子。输入描述:单组输入。第一行:n(n<=1000),表示棋盘大小接下来的n行输入n×n的0/1矩阵输出描述:输出转换之后的0/1矩阵原创 2020-09-14 22:07:08 · 670 阅读 · 0 评论