自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

h17802535087的博客

算法小白

  • 博客(20)
  • 资源 (9)
  • 收藏
  • 关注

原创 leetcode-数组篇7

这一题目中,我们每个节点保存该位置及左上方所有数的和,这样右下角的点减去其他几个点,就得到了四个点围成的区域的和。思路:刚才题目的升级版(当然也可以用上一题的方法做,不过这样get不到该题目的核心)思路:题目很简单,一看就是前缀和的题目,类似的题目还有leetcode560等题目。思路:这个题目很有意思,做过的人一眼就知道怎么做了,没做过的可能要想半天。其实就是从左往右,记录每个数左边的乘积,再从右往左,记录每个数右边的乘积。PS:类似的题目还有leetcode上的分糖果等题目,需要左右各遍历一遍。

2024-09-25 23:20:08 313

原创 leetcode-数组篇6

做多了,做这种题心里就有数了,你会下意识想到,旋转句子、将数组向右移动k个步长等题。思路:因为这题之前做过,所以也是一眼秒了,将第一行第一列作为状态组,存储整个矩阵行列的置零情况,那么第一行第一列本身的置零情况呢?下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。后来发现不能这样,活细胞不能当场处死,死细胞不能当场复活,不然会影响周围细胞的状态。个格子的面板,每一个格子都可以看成是一个细胞。否则,输出原始矩阵。,分别表示想要的重构的矩阵的行数和列数。

2024-09-24 23:26:17 410

原创 leetcode-数组篇5:数组的遍历

思路:模拟向上对角线和向下对角线的遍历,同时在在遍历完之后,看下下一个坐标点怎么重置。思路:使用四个index:left、right、up、down控制遍历的边界和方向。,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。所有元素,且元素按顺时针顺序螺旋排列的。,返回矩阵中的所有元素。思路:代码几乎和上一题一致。

2024-09-23 22:43:35 292

原创 百分百冲击shared_ptr

所有写C++的程序员,都逃不过内存泄露。关于如何定位内存泄露,前面我们讲过valgrind及其他工具关于如何把避免内存泄露,我们可以使用shared_ptr。

2024-09-22 23:26:40 370

原创 leetcode刷题笔记-数组篇4

思路,可以用上一题的做法做,但是有空间冗余,因为前后依赖关系,我们只需要前一个数组就行。利用向后往前推得策略,我们可以复用同一个。两个舰队之间至少有一个水平或垂直的空格分隔 (即没有相邻的舰队)。思路:某个格子是战舰的话,判断它的左边和右边是否为战舰,不是的话它就是一个战队。在「杨辉三角」中,每个数是它左上方和右上方的数的和。在「杨辉三角」中,每个数是它左上方和右上方的数的和。表示棋盘,其中,每个单元格可以是一艘战舰。生成「杨辉三角」的前 numRows。,返回「杨辉三角」的第。列)的形状放置,其中。

2024-09-22 22:56:09 416

原创 leetcode打卡-数组篇3

3.看了官方题解,使用源数组当map,给每个数对应的索引位置加上n,最终如果某个位置上的数小于n,那么该位置对应的数就是缺失的。2.仍然使用类似第一个缺失的正整数的思想,将每个数放到该放的位置上,其他的位置就是缺失的位置。- 第 2 秒,提莫再次攻击艾希,并重置中毒计时器,艾希中毒状态需要持续 2 秒,即第 2 秒和第 3 秒。3.使用abc来表示第一大,第二大,第三大的三个数,在遍历过程中,维护这三个数、- 第 4 秒,提莫再次攻击艾希,艾希中毒状态又持续 2 秒,即第 4 秒和第 5 秒。

2024-09-21 23:54:58 828

原创 leetcode数组-2

思路:可以用map做 ,但是没必要,使用最小缺失正数的思路, 原地置换,最终不在自己的位置上的揪出来就好了。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合。所以 F(0), F(1), F(2), F(3) 中的最大值是 F(3) = 26。输入数组的度是 2 ,因为元素 1 和 2 的出现频数最大,均为 2。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。所以 [2,2,3,1,4,2] 是最短子数组,因此返回 6。

2024-09-20 23:19:28 509

原创 数组篇-数组的改变、移动

题目没有说的是,你可以给n-1个数+1,那你其实也可以给1个数-1啊,效果一样的(我也是看的高赞才知道还有这种操作)1.curr前面只有last一个数,OK,那么这个时候怎么变呢,让curr变大还是让last变小,想想最小损失原则,必然是让last变小,因为curr变大的话,很可能会影响之后的非递减属性。2.curr前面不只一个数,curr的改变不仅要照顾last,还得考虑下last的前一个数old。一种更高级的解法是使用类似:找到最小缺失的正整数和找到链表的环的类似的解法去解,但是我还没学会。

2024-09-19 22:26:31 874

原创 MySQL实战45讲笔记(一)

1.MySQL语句的一生:(1)使用MySQL,首先要干什么呢,当然是建立连接,命令:mysql -h ip -u user -p password -P port然后后台验证你密码账号都合适,且有权限就会让你登陆进去了。(这谁干的事情,连接器!)这里有一个问题,若你登录进去之后,管理员取消了你的权限你会掉线吗?答案是不会,当你退出再次连接之后管理员对你的权限操作才会生效。这里...

2019-12-25 16:37:05 246

原创 web服务器开发

#http_conn.h //负责状态码,读写缓存区等的定义声明。​#ifndef HTTPCONNECTION_H_#define HTTPCONNECTION_H_#include<unistd.h>#include<iostream>#include<sys/types.h>#include<fcntl.h>#includ...

2019-06-06 20:39:56 733

原创 Reactor模式,Proactor模式,半同步/半异步模式

一:Reactor是这样一种模式:它要求主线程监听文件描述符上是否有事件发生,有的话交由工作线程处理,读写数据,工作连接请求等都交由工作线程完成,主线程不再参与。(以epoll为例)1.主线程向epoll内核事件表中注册socket上的读就绪事件2.主线程使用epoll_wait等待socket上是否有数据可读3.有事件可读时epoll_wait通知主线程,主线程将之放入请求队列4...

2019-04-22 21:20:37 1012

原创 多线程详解

当进程为执行任务而多次切换时,必然会产生额外的开销。这时引入一个更小的单位——线程。一个进程里面有多个线程,这些线程也可能会服务于其他进程。例如酷狗播放器的声音处理线程,与爱奇艺的声音处理线程可能为同一线程。线程共享进程的所有信息。线程共享的进程环境包括:进程代码段 进程的公有资源(如全局变量,利用这些共享的数据,线程很容易的实现相互之间的通信) 进程打开的文件描述符 消...

2019-04-19 11:14:02 212

原创 网络I/O模型

本文参考于analogous_love大神的linux网络专栏,以及徐晓鑫女士的《后台开发》一书,十分感谢两位。网络I/O模型,在unp中,斯蒂夫先生将它归为五种:(1)阻塞式I/O(2)非阻塞式I/O(3)多路复用式I/O(4)信号驱动式I/O(5)异步I/O而在徐晓鑫女士的《后台开发》一书中,并没有提及信号驱动式。其中阻塞式是入门级的,就不多讲述了。(2)...

2019-04-17 19:25:27 145

原创 do...while(0)的妙用

总是听闻do...while(0)有妙用,但一直不曾去了解,今日得缘偶见,其可替代功能复杂的宏。effective c++的第一个条例就是用enum,const,union等代替define,为什么define如此令人闻之色变呢?#define f(x,y) x*y的原意是简化调用,当x,y是数字或变量时无碍,但当其是表达式时则相去甚远。例如: f(3,5),这是=符合我们初衷,但若f...

2019-04-17 16:37:09 117

原创 c++小记

1.二维数组的传参问题:(1):在形参中指明第二维维数; 例:void set(int a[][3])(2):一维数组指针作为形参; 例:void set(int (*a)[3])(3):二重指针传参; 例:set (&a);void set(int (*a)[10][10])2.指针引用:*p=10;*&q=p;3...

2019-04-16 09:55:01 152

原创 九宫格

写了一个利用穷举求九宫格的算法,本来是要求三横三竖两对角线,共计八线和都要满足15,但是在if语句之前我们就可以判断除四周之外的其他和,大大的减少其遍历次数。#include<iostream>using namespace std;int check(int a[10]){ if(15!=(a[1]+a[2]+a[3])||15!=(a[1]+a[4]+a[7])||1...

2019-04-16 09:30:34 473

原创 大小端定义及判断

大端,小端又名网络字节序,主机字节序。高位高存,低位低存是小端,复合人们的视觉体验,不用改变位置,如0x0102,在内存的存储位置也是 01 02。而大段相反,复合逻辑,为02 01。如今网络传输,keli5c等使用大端,x86系列使用小段。unp中有一个程序用来判断大小端://endian_check.cpp#include<iostream>using namespa...

2019-04-14 20:46:08 344

原创 “粘包”问题的起因与解决

本文参考于:徐晓鑫女士的《后台开发》(1)因为nagle算法。什么是nagle算法,简而言之是为了避免浪费资源,将包合并发送的算法。就好比你一个人打车必然不划算,可以约几个和你一道的人一起打车,宾主尽欢。但是随之而来的问题是,因为一起发送,故接收方不知道一个包的骑士==起始和截止位置。(2)因为我们网络编程时,其实是将接受到的数据置入缓冲区,待应用层读取,但若应用层阻塞于其他事情而归期未至...

2019-04-14 20:37:12 899

原创 分治算法

/* 2^N个队伍比赛,每支队伍与其他队伍比赛一次, 每天比赛一场,比赛2^N-1天*/当N=0时,结果为1;当N=1时,结果为1   2                          2   1;当N=2时,结果为  1    2    3    4                            2    1    4    3                            ...

2018-04-19 18:18:19 203

原创 位优化快速幂

已知X和N的值,求X^N的值。第一种方法,直接调用pow函数:double a:a=pow(X,N);第二种方法,写个循环:int a,b=1;for(int a=1;a&lt;=N;a++)    b*=X;第三种方法,位优化;example:求a^156。                156化为二进制就是10011100;而a^156=a^4*a^8*a^16*a^128;是不是恰与156...

2018-04-19 16:43:23 164

http_conn.zip

linux下C++网络编程,师从于steven先生网络编程著作,以及游双先生的高性能服务器开发,徐晓鑫女士的后台开发核心技术

2019-06-06

python核心编程第二版中文

在入门python之后,这本核心技术是深入python不可或缺的手典。

2019-04-15

python基础教程第二版

python基础教程是学习python的人入门必不可少的资料。

2019-04-15

c程序试题汇编

对于学完c语言的同学,一定要用这本书来践行自己的所学。

2019-04-15

c++Gui qt4编程

对于任何有志于gui界面开发的人来说,qt都是必不可少的框架

2019-04-14

笨办法学python

笨办法学python对任何感兴趣python的人来说,都是一本福音

2019-04-14

黑客编程基础

对于任何一个有志于成为黑客的人来说,这本书都是不可获取的好帮手

2019-04-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除