mtgo666
mtgo666
全部文章
分类
Linux学习笔记(10)
STL(7)
基础算法(9)
学习笔记(10)
题解(26)
归档
标签
去牛客网
登录
/
注册
mtgo666的博客
TA的专栏
19篇文章
0人订阅
数据结构和算法
19篇文章
2921人学习
全部文章
(共63篇)
不适用额外空间交换两个数
1、简介 平时交换两个数的代码很简单,只需要借助temp辅助变量,比如: int a = 5; int b = 6; int temp = a; a = b; b = temp; 即可完成交换。但是假如在面试中让你不使用额外空间交换两个数呢? 2、方法 2.1 方法一:数学 int a = 5; ...
C++
数学
2022-08-29
0
557
递归建立二叉树
来自专栏
1、简言 最近秋招面试,发现有的公司考察二叉树方面的算法题时需要自己建立二叉树,因此写一下建立二叉树的步骤回忆一下。 2、思路 首先需要写出二叉树的结点结构: struct TreeNode{ int val; TreeNode *left; TreeNode *right;...
C++
二叉树
2022-08-17
0
576
题解 | #丑数#
代码实现 class Solution { public: int GetUglyNumber_Solution(int index) { if(index == 0) return 0; //开辟三个队列 queue<int> q...
模拟
C++
2022-06-26
0
352
判断一个出栈序列是否合法
来自专栏
1、要求 给定一个入栈序列和一个出栈序列,判断这个出栈序列是否合法。 例如: 入栈序列:pushV:[1, 2, 3, 4, 5, 6, 7] 出栈序列:popV:[1, 3, 2, 5, 7, 6, 4] 2、实现思路 我们使用栈模拟的方式来做这道题: 使用一个辅助栈来模拟出入栈的过程 ...
C++
栈
模拟
2022-04-17
2
2220
题解 | #旋转数组#
1、算法思路 这道题我们使用额外数组可以轻易做出,但是题目要求不允许使用额外数组。 思路:循环右移相当于从第m个位置开始,左右两部分视作整体翻转。即abcdefg右移3位efgabcd 可以看成 AB 翻转成 BA(这里小写字母看成数组元素,大写字母看成整体)。既然是翻转我们可以用到reverse函...
C++
2022-04-15
0
374
题解 | #分糖果问题#
1、算法思路 把所有孩子的糖果数初始化为 1;先从左往右遍历一遍,如果右边孩子的评分比左边的高,则右边孩子的糖果数更新为左边孩子的糖果数加 1;再从右往左遍历一遍,如果左边孩子的评分比右边的高,且左边孩子当前的糖果数不大于右边孩子的糖果数,则左边孩子的糖果数更新为右边孩子的糖果数加 1。通过这两次遍...
C++
贪心
2022-04-14
0
444
线程同步
1、概念 线程同步,指一个线程发出某一功能调用时,在没有得到结果之前,该调用不返回。同时其它线程为保证数据一致性,不能调用该功能。 2、练习 创建两个线程,让两个线程共享一个全局变量int g_var, 然后让每个线程数5000次数,看最后打印出这个 g_var 值是多少? 2.1 代码实现 理论上...
C
2022-04-01
1
435
pthread_exit & pthread_join
1、简介 介绍一下 pthread_exit 和 pthread_join 这两个函数的用法。并且通过一个练习来完成主线程对子线程的回收。 2、pthread_exit 在线程中禁止调用exit函数,否则会导致整个进程退出,取而代之的是调用pthread_exit函数,这个函数是使一个线程退出,如果...
C
2022-03-31
0
395
循环创建子线程
1、需求 让主线程循环创建五个子线程,并让子线程判断自己是第几个子线程。 2、分析 我们只需要利用for循环创建子线程,并且在线程处理函数中打印自己是第几个就OK。 3、代码实现 //循环创建子线程 #include <stdio.h> #include <pthread.h>...
C
2022-03-31
1
611
利用先序和中序序列构建二叉树
来自专栏
1、需求 我们知道,利用先序序列和中序序列可以唯一的确定一个二叉树,比如先序[1,2,4,5,3]和中序[4,2,5,1,3]可以构成二叉树:[1,2,3,4,5]。那思路落实到代码上应该如何写呢? 2、思路 想想我们是如何在脑海中把上述两个序列构建成二叉树的: 先构造根节点:先序序列的第一个元素...
C++
二叉树
2022-03-27
0
1100
首页
上一页
1
2
3
4
5
6
7
下一页
末页