- 博客(124)
- 收藏
- 关注
原创 【LeetCode力扣热题100】【LeetCode 15】三数之和
这道题主要是优化三重循环。题目要求是不重复的结果,将数组进行排序,相同的元素彼此相邻,在遍历中跳过相邻的相同元素,避免得到重复的结果。循环的思想依旧是固定其中两个数,遍历寻找符合条件的第三个数。第一层和第二层循环分别用来确定第一个数和第二个数,这两层循环利用排序的结果,跳过重复的元素,去掉重复的结果。第三个元素的循环从最大值逆序遍历,避免重复遍历first和second遍历过的元素。
2024-12-18 09:15:55
275
原创 【LeetCode力扣热题100】【LeetCode 11】盛水最多的容器
left指针从左往右遍历,right指针从右往左遍历。若height[left]<height[right],在left指针不动的情况下,当前right指针指向的位置所得到的盛水量是在后续right指针向左移的情况中最大的,因为left指针所指向的高度决定了盛水的高度,但是随着right向左移,容器的宽度变小,容量变小。同样的,在right指针不动的情况下,若height[left]>height[right],当前left指针指向的位置是水量最大的位置,left向右移容器宽度变小,容量变小。
2024-12-12 14:33:20
202
原创 【LeetCode力扣热题100】【LeetCode 283】移动零
双指针,first指针指向结果序列的尾部+1,second指针依次遍历原序列,遇0跳过,非0则将指向的元素赋值给first指针指向的位置。最后,从first索引开始将后续的元素全部赋值为0。
2024-12-12 11:40:11
206
原创 【LeetCode力扣热题100】【LeetCode 128】最长连续序列
将原数组排序,然后遍历,跳过连续相同的元素,计算相邻元素的差值,等于1则计数加一,否则重新计数。
2024-12-11 19:33:36
260
原创 【LeetCode力扣热题100】【LeetCode 49】字母异位词分组
字母异位词指的是两个单词的字符组成相同,字符的排列顺序不同,由此可推断,这两个词经过内部字符排序后的结果是相同的,[nat -> ant] [tan -> ant]。将排序后的词语作为map的key值,map的value存储排序后结果相同的单词。
2024-12-11 17:42:15
333
原创 第2章 变量和基本类型
2.1 基本内置类型2.1.1 算术类型内存计量单位说明:位:bit(binary digit,简写b),是计算机数据存储的嘴角单位,二进制中,0或1就是一个位。系统的32位和64位指的就是bit。 字节:Byte(简写B),是计算机信息技术用于计量存储容量的一种计量单位,是可寻址的最小内存块。一个字节要至少能容纳及其基本字符集中的字符。通常情况下:1Byte = 8bit->1B = 8b。 字:word,是存储的基本单元。通常由32比特或64比特构...
2022-04-30 23:44:49
839
原创 第1章 开始
1.1 一个简单的C++程序C++程序从main函数开始。函数的定义包含四部分:返回类型,函数名,形参列表,函数。在大多数程序中main函数的返回类型被用于指示状态。编译运行环境:Linux操作系统g++编译器1.2 输入和输出C++语言通过标准库提供IO机制,iostream库。4个IO对象:cin:istream类型的对象,称为标准输入 cout:ostream类型的对象,称为标准输出 cerr:ostream类型的对象,通常用来输出警告和错误信息,称为标准错误 c
2022-04-28 22:31:26
1130
原创 循环链表的创建(基于不带头节点的单链表)
#include <iostream>using namespace std;//创建链表类节点class ListNode{public: //无参构造函数 ListNode() { next = nullptr; } //有参构造函数 ListNode(int x) { val = x; next = nullptr; } int val; ListNode* next;};//不带头节点的循环链表链表创建ListNode * NoHe.
2021-03-20 11:19:21
442
原创 双向链表的创建(带头节点&不带头节点)
#include <iostream>using namespace std;//创建链表类节点class ListNode{public: //无参构造函数 ListNode() { pre = nullptr; next = nullptr; } //有参构造函数 ListNode(int x) { val = x; pre = nullptr; next = nullptr; } int val; ListNode* pre; L.
2021-03-20 10:28:51
488
原创 单链表的创建(带头节点&不带头节点)
#include <iostream>using namespace std;//创建链表类节点class ListNode{public: //无参构造函数 ListNode() { next = nullptr; } //有参构造函数 ListNode(int x) { val = x; next = nullptr; } int val; ListNode* next;};//不带头节点的单链表创建ListNode * NoHead(){ L.
2021-03-19 22:35:48
339
原创 Hadoop学习(五)完全分布运行模式
一、虚拟机准备1、准备3台虚拟机,分别为hadoop102,hadoop103,hadoop104,并分别修改静态ip和主机名2、安装Hadoop和Java
2020-04-24 19:09:52
359
原创 Hadoop学习(四)伪分布运行模式
伪分布模式:只有一个节点的分布式一、启动HDFS并运行MapReduce程序1、配置集群将目录切换到:/opt/module/hadoop-2.7.2/etc/hadoop(1)配置hadoop-env.sh该配置文件中修改JAVA_HOME路径,上一篇文章修改过(2)配置core-site.xml打开文件:vim core-site.xml在标签configura...
2020-04-21 22:37:41
662
原创 Hadoop学习(三)本地运行模式——两个案例
(此篇内容基于上一篇博客配置的环境)Hadoop运行模式包括:本地模式、伪分布模式、完全分布模式依赖:Java,SSH本地运行模式:mapreduce跑在了本地的资源调度,本地的存储上。作用是测试,不用其来跑任务一、Grep案例1、编辑文件hadoop-env.sh,配置JAVA_HOME当前目录:/opt/module/hadoop-2.7.2/打开文件:etc/ha...
2020-04-21 21:35:07
548
原创 Hadoop学习(二)虚拟机配置
系统:CentOS7内存:2G1、关闭防火墙查看防火墙状态:systemctl status firewalld.service 绿色字样为防火墙开启状态关闭防火墙:systemctl stop firewalld.service 防火墙关闭关闭防火墙开机自启:systemctl disable firewalld2、创建一个一般...
2020-04-20 17:32:55
675
原创 GLUT函数库
GLUT:打开窗口,管理窗口,从键盘、鼠标读取事件。void glutInitDisplayMode( unsigned int displayMode );功能:设置初始显示模式,一下模式可随意组合,形式:mode1|mode2|...... 值 对应宏定义 意义 GLUT_RGB 0x00...
2020-02-25 14:31:04
1189
原创 线性表概述
一、定义线性表(List):零个或多个数据元素的有限序列二、基本操作InitList(&L) //操作结果:构造一个空的线性表L。DestroyList(&L) //初始条件:线性表L已存在。操作结果:销毁线性表L。ClearList(&L) //初始条件:线性表L...
2020-01-03 15:31:43
409
原创 HTTP协议
一、定义HTTP:WEB浏览器与WEB服务器之间的一问一答的交互过程遵循的规则。HTTP是一种超文本传输协议(hypertext transfer protocol),是TCP/IP协议集中的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。是一个无状态,无连接的协议;基于请求/响应模式的一个协议PS:发送请求载入网页时,网页里的资源来自于其他链接,需...
2019-12-27 22:50:25
342
原创 Hadoop学习(一)Hadoop概述
一、Hadoop1、简介Hadoop是一个由Apache基金会开发阿德分布式系统基础架构主要解决,海量数据的存储和海量数据的分析计算问题PS:储存大小数量级:兆M->吉G->太T->拍P->艾E->泽ZHadoop三大发行版本:Apache(最原始,最基础,开源)、Cloudera(大型互联网企业中用的多)、Hortonworks(文档较好)...
2019-12-27 15:56:14
687
原创 OpenGL简介
OpenGLOpenGL是一种软件接口,或者API(应用程序编程接口),跨平台OpenGL开发库来源:https://blog.youkuaiyun.com/yqxx/article/details/382519?utm_source=blogxgwz11、OpenGL核心库,库前缀gl用于常规的核心的图形处理2、实用库,库前缀GLU该库封装了OpenGL函数,GLU函数通过调用核...
2019-12-16 23:09:41
853
原创 HDU 1014 Uniform Generator
传送门:HDU 1014#include #include #define MAXN 100000using namespace std;int seed(int x,int step,int mod){ return ((x + step)%mod);}int main(){ int step; int mod; int note[MAX
2017-12-21 22:43:42
248
原创 HDU 1020 Encoding
传送门:HDU 1020注:求的是相邻的字符相同的个数,不是整个字符串。#include #include #include #define MAXN 10005using namespace std;int main(){ int n; char str[MAXN]; int i,k; scanf("%d",&n); while(
2017-12-21 00:08:36
257
原创 HDU 1076 An Easy Task
传送门:HDU 1076#include #include using namespace std;int leadyear(int y){ while(1) { if(y%400 == 0 || ( y%100!=0 && y%4 == 0 )) { return y; } y
2017-12-21 00:07:01
226
原创 HDU 1012 u Calculate e
传送门:HDU 1012#include #include using namespace std;int main(){ int multiply[15]; double summul[15]; multiply[0] = 1; summul[0] = 1; for(int i=1;i<10;i++) { multi
2017-12-21 00:05:38
289
原创 HDU 1008 Elevator
传送门:HDU 1008#include #include #include using namespace std;int main(){ int n; while(~scanf("%d",&n) && n) { int profloor = 0; int resultsec = 0; for(int i
2017-12-21 00:03:52
264
原创 HDU 2039 三角形
传送门:HDU 2039#include #include #include using namespace std;int main(){ int M; scanf("%d",&M); while(M--) { double a,b,c;//注意边长类型 scanf("%lf %lf %lf",&a,&b,&c);
2017-12-20 23:58:53
259
原创 HDU 2054 A == B ?
传送门:HDU 2054注:主要是计算小数点的位置#include #include #include using namespace std;void SubString(char s[]);int main(){ char strA[100000]; char strB[100000]; while(~scanf("%s %s",strA,str
2017-12-20 23:55:22
237
原创 HDU 2043 密码
传送门:HDU 2043#include #include #include using namespace std;bool judgebig(int x);bool judgesmall(int x);bool judgenumber(int x);bool judgefuhao(int x);int main(){ int m; scanf("%d
2017-12-20 23:52:01
343
原创 POJ 2387(最短路dijkstra)
传送门:POJ2387注意:需要注意的就是两个点之间可能有多条路,记录下最短的数据。#include #include using namespace std;#define MAX 1005#define INF 0x3f3f3f3int Map[MAX][MAX];int dis[MAX];int grp[MAX];void dijkstra(int n,int
2017-09-10 15:01:12
1175
原创 第一章 线程概述
一、线程概述进程是系统中程序执行和资源分配的基本单位。每个进程有自己的数据段、代码段和堆栈段。这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作。为了进一步减少处理器的空转时间支持多处理器和减少上下文切换开销,也就出现了线程。线程通常叫做轻量级进程。线程是在共享内存空间中并发执行的多道执行路径,是一个更加接近于执行体的概念,拥有独立的执行序列,是进程的基本调度单元,每个进程至
2016-02-01 22:12:52
521
原创 Linux-IPC之信号
一、信号概念信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件)。信号是硬件中断的软件模拟(软中断)。每个信号用一个整型常量宏表示,以SIG开头,比如SIGCHLD、SIGINT等,它们在系统头文件中定义,也可以通过在shell下键入kill –l查看信号列表,或者键入man 7 signal查看更详细的说明。信号的生成来自内核,让内核生成信号的请求来自3个地方:1.用户
2016-01-28 23:39:14
579
原创 Linux-IPC之信号量
信号量(也叫信号灯)是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语(不会被其他指令中断)。信号量是进程/线程同步的一种方式,有时候我们需要保护一段代码,使它每次只能被一个执行进程/线程运行,这种工作就需要一个二进制开关;有时候需要限制一段代码可以被多少个进程/线程执行,这就需要用到关于计数信号量。信号量开关是二进制信号量的一种逻辑扩展,两者实际调用的函数都是一样。信号量分
2016-01-28 00:24:40
612
原创 Linux-IPC之共享内存
System V(标准)共享内存机制: shmget shmat shmdt shmctl原理及实现:system V IPC机制下的共享内存本质是一段特殊的内存区域,进程间需要共享的数据被放在该共享内存区域中,所有需要访问该共享区域的进程都要把该共享区域映射到本进程的地址空间(虚拟地址空间)中去。这样一个使用共享内存的进程可以将信息写入该空间,而另一个使用共享内存的进程又可以通过简单的
2016-01-26 23:59:42
1008
原创 Linux-IPC之管道
一、标准流管道像文件操作有标准io流一样,管道也支持文件流模式。用来创建连接到另一进程的管道,是通过函数popen和pclose。原型:#include FILE* popen(const char* command, const char* open_mode);int pclose(FILE* fp);函数popen():允许一个程序将另一个程序作为新进程来启动,并可以
2016-01-26 21:08:18
482
原创 进程#第五章 守护进程
Daemon运行在后台也称作“后台服务进程”。 它是没有控制终端与之相连的进程。它独立与控制终端、会话周期的执行某种任务。那么为什么守护进程要脱离终端后台运行呢?守护进程脱离终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的任何终端信息所打断。那么为什么要引入守护进程呢?由于在linux中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依
2016-01-26 19:50:42
455
原创 进程#第四章 进程的控制与终止
一、进程的控制如果父进程先于子进程退出,则子进程成为孤儿进程,此时将自动被PID为1的进程(即init)接管。孤儿进程退出后,它的清理工作有祖先进程init自动处理。但在init进程清理子进程之前,它一直消耗系统的资源,所以要尽量避免。孤儿进程示例:#include #include #include int main(){ if(!fork()) { pr
2016-01-26 14:11:33
3985
原创 进程#第三章 进程的创建
Linux下有四类创建子进程的函数:system(),fork(),exec*(),popen() 先执行父进程,后执行子进程一、system()原型:#include <stdlib.h>int system(const char *string);system函数通过调用shell程序/bin/sh -c 来执行string所指定的命令,该函数在内部是通过调用fork()–>execve(“
2016-01-26 00:18:41
723
原创 进程#第二章 进程
一、进程标识OS会为每个进程分配一个唯一的整型ID,做为进程的标识号(pid)。进程除了自身的ID外,还有父进程ID(ppid),所有进程的祖先进程是同一个进程,它叫做init进程,ID为1,init进程是内核自举后的一个启动的进程。init进程负责引导系统、启动守护(后台)进程并且运行必要的程序。虽然进程ID是唯一的,但是进程ID是可复用的。当一个进程终止后,其进程ID就成为复用的候
2016-01-25 17:42:59
667
原创 进程#第一章 进程概述
进程是一个程序一次执行的过程,它和程序有本质区别。程序是静态的,它是一些保存在磁盘上的指令的有序集合;而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建、调度和消亡的过程,是Linux的基本调度单位。那么从系统的角度看如何描述并表示它的变化呢?在这里,是通过进程控制块(PCB)来描述的。进程控制块包含了进程的描述信息、控制信息以及资源信息,它是进程的一个静态描述。内核使用进
2016-01-25 15:31:26
805
原创 文件#第二章 文件的创建、打开与关闭
一、基于文件指针的操作(缓冲)1、文件的创建原型为:#include //头文件包含FILE *fopen(const char *pach,const char *mode); //文件名 模式int fclose(FILE *stream);fopen以mode的方式打开或创建文件,如果成功,将返回一个文件指针,失败则返回NULL。fopen创建的文件的访问权限将
2016-01-24 23:56:09
613
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人