随笔分类 - 课程
摘要:一、题目 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,
阅读全文
摘要:一、线程池的由来 (一)为什么会有线程池? 想要深入理解线程池的原理得先知道为什么需要线程池。 首先你要明白,线程是一个重资源,JVM 中的线程与操作系统的线程是一对一的关系,所以在 JVM 中每创建一个线程就需要调用操作系统提供的 API 创建线程,赋予资源,并且销毁线程同样也需要系统调用。 而系
阅读全文
摘要:一、题目 给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 二、思路 dp[i][j] = (s[i] == s[j]) and dp[i + 1][j - 1] 三、代码 #include <iostream> #include <st
阅读全文
摘要:一、题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 二、思路 三、代码 class Solution: def longestCommonSubsequence(self, text1: str, text2: s
阅读全文
摘要:关于图的几个概念定义: 连通图:在无向图中,若任意两个顶点vi与vj都有路径相通,则称该无向图为连通图。 强连通图:在有向图中,若任意两个顶点都有路径相通,则称该有向图为强连通图。 连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个顶点的代价,称这种连通图叫
阅读全文
摘要:一、题目 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 二、思路 杨辉三角,是二项式系数在三角形中的一种几何排列。它是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。 三、代码 cla
阅读全文
摘要:一、题目 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 二、思路 别想那么多,就挨着跳吧 三、代码 class Solution: def canJump(self, nums: List[i
阅读全文
摘要:一、题目 二、思路 要使lcm(a, b) - gcd(a, b)尽量大,应该让a和b的最小公倍数尽量大,a和b的最大公约数尽量小。当a、b分别取n -1 和 n时满足该条件:最小公倍数为两者乘积,最大公约数为1。 三、代码 #include<iostream> using namespace st
阅读全文
摘要:一、题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明:你不能倾斜容器。 二、思路 初始化: 双指
阅读全文
摘要:原文链接:进程间的通信方式——pipe(管道) 1.进程间通信 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程A把数据从用户空间拷到内核缓冲区,进程B再从内核缓冲区把数据读走,内核提供的这种机制称为进程
阅读全文
摘要:一个 socket 是否设置为阻塞模式,只会影响到 connect/accept/send/recv 等四个 socket API 函数,不会影响到 select/poll/epoll_wait 函数,后三个函数的超时或者阻塞时间是由其函数自身参数控制的。 (一)原理分析 下面详细的解释,为了方便解
阅读全文
摘要:头文件:#include <stdio.h> sprintf()函数用于将格式化的数据写入字符串。 int sprintf(char *str, char * format [, argument, ...]); char *str为要写入的字符串。 char * format为格式化字符串。 ar
阅读全文
摘要:一、bzero 功能:bzero把目标字符串中指定的数目的字节置为0 #include <strings.h> void bzero(void *dest,size_t nbytes); 参数:1.字符串 2.指定的字节 二、bcopy 功能:将指定数目的字节从源字符串移动到目标字符串中 #incl
阅读全文
摘要:(一)epoll 交互过程 一个客户端和使用了 epoll 的服务端的交互过程如下图所示。 1.epoll 原理 (1)select 的问题 select 的问题在于描述符的限制,能监控的文件描述符最大为 FD_SETSIZE,对于连接数很多的场景就无法满足; 另外select 还有一个问题,每调用
阅读全文
摘要:一、题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 二、思路 根据罗马数字的唯一表示法,为了表示一个给定的整数 num,我们寻找不超过 num 的最大符号值,将 num 减去该符号值,然后继续寻找不超过 num 的最大符号值,将该符号拼接在上一个找到的符号之后,循环直至 n
阅读全文
摘要:(一)引入:构造大根堆 首先我们给定一个无序的序列,将其看做一个堆结构,一个没有规则的二叉树,将序列里的值按照从上往下,从左到右依次填充到二叉树中。 对于一个完全二叉树,在填满的情况下(非叶子节点都有两个子节点),每一层的元素个数是上一层的二倍,根节点数量是1,所以最后一层的节点数量,一定是之前所有
阅读全文
摘要:一、题目 给你两个字符串 a 和 b ,它们长度相同。请你选择一个下标,将两个字符串都在 相同的下标 分割开。由 a 可以得到两个字符串: aprefix 和 asuffix ,满足 a = aprefix + asuffix ,同理,由 b 可以得到两个字符串 bprefix 和 bsuffix
阅读全文
摘要:一、BUFSIZ定义 Linux平台 stdio.h: #define BUFSIZ _IO_BUFSIZlibio.h: #define _IO_BUFSIZ _G_BUFSIZ_G_config.h: #define _G_BUFSIZ 8192 二、BUFSIZ作用 程序输出时,为减轻系统负担
阅读全文
摘要:功能描述:fcntl函数可以用来对已打开的文件描述符进行各种控制操作以改变已打开文件的的各种属性 文件控制函数 fcntl -- file control 头文件 #include <unistd.h> #include <fcntl.h> 函数原型 int fcntl(int fd, int cm
阅读全文
摘要:(一)初探 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目
阅读全文

浙公网安备 33010602011771号