- 博客(1258)
- 资源 (2)
- 收藏
- 关注
原创 dfs & bfs
图的构建及打印#include <iostream>#include <queue>#include <vector>using namespace std;const int MAX_V = 100;vector<vector<int>> adj(MAX_V);void AddEdge(int from, int to) { adj[from].push_back(to); adj[to].push_back(from)
2021-09-06 21:49:32
368
原创 kubeadm init 超时
k8s 集群搭建:https://www.shuzhiduo.com/A/QV5ZDG04zy/kubeadm init 报超时错误:failed to pull image "k8s.gcr.io/kube-apiserver:v1.20.4": output: Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.T
2021-02-27 17:44:48
1610
1
原创 旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof
2021-01-30 12:06:37
421
原创 相交链表
编写一个程序,找到两个单链表相交的起始节点。输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如果两个链表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在
2021-01-30 12:04:44
256
原创 矩阵中的路径
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”],[“s”,“f”,“c”,“s”],[“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格
2021-01-26 17:31:18
192
原创 顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <= matrix[i].length <= 100来
2021-01-24 20:50:35
138
原创 数值的整数次方
实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数
2021-01-24 19:32:58
135
原创 链表中倒数第k个节点
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-
2021-01-24 18:52:44
150
原创 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 ta
2021-01-24 18:31:27
143
原创 数组中重复的数字
找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-z
2021-01-24 18:11:03
149
原创 数组中第 k 大的数字
#include <iostream>using namespace std;int partion(int arr[], int left, int right) { if (left >= right) { return left; } int i = left, j = right; int tmp = arr[i]; while (i < j) { while (i < j &am
2021-01-24 16:12:38
177
原创 字符串数组最长公共前缀
#include <iostream>#include <vector>using namespace std;string str_longest_prefix(string str1, string str2) { if (str1 == "" || str2 == "") { return ""; } int i = 0, j = 0; string result = ""; while (i < str
2021-01-21 21:07:44
191
原创 输出两个字符串数字的差
已知:第一个数字大于第二个数字。#include <iostream>#include <vector>using namespace std;// 1004// 45// 959// 114// 45// 69string subtract(string a, string b) { if (a == "") { return ""; } if (b == "") { return
2021-01-19 22:39:07
522
1
原创 编译原理之美 --- 05 | 语法分析(三):实现一门简单的脚本语言
simple_script.py#!/usr/bin/env python# -*- coding: utf-8 -*-from play_with_compiler.craft.simple_parser import SimpleParserfrom play_with_compiler.craft.base_type import ASTNodeTypeimport sys'...
2019-12-29 18:12:37
2115
原创 python 进程交互:Queue
#!/usr/bin/env python# -*- coding: utf-8 -*-import timeimport datetimeimport multiprocessingfrom multiprocessing import Process, Manager, Lock, Queuefrom threading import Threadimport ctypes, ...
2019-12-24 09:55:55
256
原创 centos 开启防火墙端口
查看所有打开的端口:firewall-cmd--zone=public --list-ports添加端口:firewall-cmd --zone=public --add-port=80/tcp --permanent 重新载入:firewall-cmd --reload参考https://blog.youkuaiyun.com/u012498149/article/details/787...
2019-12-22 18:05:19
366
原创 python 进程与线程的交互
#!/usr/bin/env python# -*- coding: utf-8 -*-import timeimport datetimefrom multiprocessing import Process, Manager, Lockfrom Queue import Queuefrom threading import Threadimport ctypes, osimp...
2019-12-22 04:57:30
321
原创 python --- 线程不适合计算密集型的例子
多个线程干同一件事 VS 一个线程干一件事居然后者更快一些,原来 python 中的线程不适合计算密集型。原因:https://www.dabeaz.com/usenix2009/concurrent/Concurrent.pdf#!/usr/bin/env python# -*- coding: utf-8 -*-from threading import Threadimport...
2019-12-19 17:49:16
420
原创 epoll 的 maxevents 参数
maxevents: Size (in terms of number of events) of the caller event buffer.如果有超过 maxevents 的事件就绪,会被抛弃吗?epoll 源码:https://github.com/torvalds/linux/blob/master/fs/eventpoll.cepoll_wait 的调用栈:epoll_wai...
2019-12-12 17:22:27
1829
原创 python 中 queue 高效的原因
queue 高效的原因:底层使用了 dequeuedequeue:[1] C 编写[2] dequeu 的 append 和 popleft 方法的时间复杂度均为 O(1)[3] 完全避免了 realloc(),当空间不够时,再分配一个 block 即可[4] 一个 block 的默认大小为 64,避免了频繁调用 malloc() 和 free()[5] block 内元素的指针连续,...
2019-12-12 11:42:40
395
原创 git配置
[1] 生成 ssh key$ ssh-keygen -t rsa -C "你的git的注册邮箱"接着又会提示你输入两次密码(该密码是你 push 文件的时候要输入的密码,而不是 github 管理者的密码),当然,你也可以不输入密码,直接按回车(推荐)。那么 push 的时候就不需要输入密码,直接提交到 github 上了。[2] 添加 ssh key 到 github 上登录你的 g...
2019-12-11 16:30:34
197
原创 编译原理之美 --- 04 | 语法分析(二):解决二元表达式中的难点
核心循环代替左递归。代码以前:''' 语法解析:加法表达式 ''' def additive(self, tokens): child1 = self.multiplicative(tokens) node = child1 token = tokens.peek() if (child1 != No...
2019-12-09 22:32:27
1788
原创 编译原理之美 --- 03 | 语法分析(一):纯手工打造公式计算器
simple_calculator.py#!/usr/bin/env python# -*- coding: utf-8 -*-from play_with_compiler.craft.base_type import ASTNodefrom play_with_compiler.craft.base_type import Token, TokenReader, TokenType, ...
2019-12-08 22:15:32
1223
原创 react --- 父子组件间通信
子组件改变父组件的状态父组件class Father extends React.Component { constructor(props) { super(props) this.state = { myState: "myState", } this.setMyState = this.setMyState.bind(this) } setMySta...
2019-12-07 16:13:34
162
原创 编译原理之美---正则文法和有限自动机:纯手工打造词法分析器
craf.h#ifndef _Craft_H_INCLUDED_#define _Craft_H_INCLUDED_#include <string>#include <vector>#include <queue>using namespace std;/** * Token的类型 */enum class TokenType{ ...
2019-12-01 23:20:26
1447
原创 eventfd 进程间同步
先打印“parent”,后打印“child”#define _GNU_SOURCE#include <stdio.h>#include <stdlib.h>#include <sys/eventfd.h>#include <unistd.h>#include <sys/wait.h>#include <sched.h&...
2019-11-07 15:55:53
475
原创 轻量级容器程序
阳哥的程序:https://github.com/Pro-YY/jail主进程:argp_parse 解析输入参数。用 root 身份建立了 cgroup(限制一组进程的资源),rlimit(限制一个进程或者一个用户的资源)。调用带 CLONE_NEW* 标志的 clone() 创建子进程。配置网络。写 eventfd,通知子进程,子进程继续执行。向 epoll 中注册信号、超时事...
2019-11-06 19:45:51
417
原创 c --- 参数解析
例子一原文:https://www.gnu.org/software/libc/manual/html_node/Argp-Example-1.html#Argp-Example-1argp 最小的例子。当有参数时,给出一条错误消息。当指定选项“-- help”时,打印消息。#include <stdlib.h>#include <argp.h>int...
2019-11-06 14:36:35
2927
翻译 Mount namespaces, mount propagation, and unbindable mounts
在上一期命名空间系列的文章中,我们研究了挂载命名空间和共享子树的基本概念,包括挂载传播类型和对等组的概念。在这篇文章中,我们提供了各种传播类型操作的一些实际演示:MS_SHARED,MS_PRIVATE,MS_SLAVE 和 MS_UNBINDABLE。MS_SHARED 和 MS_PRIVATE 示例正如在上一篇文章中看到的,MS_SHARED 和 MS_PRIVATE 传播类型大致相反。共...
2019-11-04 01:36:24
738
翻译 Mount namespaces and shared subtrees
挂载命名空间是创建每-用户和每-容器文件系统树的强大而灵活的工具。本文中,我们将仔细研究共享子树特性,它可通过自动、可控的方式在挂载命名空间之间传播挂载和卸载事件。引言挂载命名空间是第一个添加到 Linux 的命名空间类型,出现在 2002 年的 Linux 2.4.19 中。它们可隔离命名空间中的进程所看到的挂载点列表。换言之,每个挂载命名空间都有自己的挂载点列表,这意味着不同命名空间中的进...
2019-11-03 20:55:40
416
翻译 Namespaces in operation, part 7: Network namespaces
自从上次我们研究 Linux 命名空间以来已经有一段时间了。我们的系列缺少了一篇,现在补上:网络命名空间。顾名思义,网络命名空间将网络设备、地址、端口、路由、防火墙规则等的使用划分在不同的盒子,基本上是在一个单独运行的内核实例中虚拟化网络。网络命名空间在 2.6.24 版进入内核,约 5 年前;大概一年后,它们才进入黄金时段。从那以后,它们似乎在很大程度上被开发人员忽略了。基本的网络命名空间管理...
2019-11-03 16:43:36
279
翻译 Namespaces in operation, part 6: more on user namespaces
本文中,继续上周关于用户命名空间的讨论。特别的,我们看一下更多有关与用户命名空间、capabilities 的交互及用户命名空间与其它类型的命名空间的结合。本文是命名空间系列的最后一篇。用户命名空间和 capabilities每个进程都会关联特定用户命名空间。一个通过不带 CLONE_NEWUSER 标志的 fork() 或 clone() 创建的进程与父进程位于同一用户命名空间。进程如果在目...
2019-11-02 23:03:24
252
翻译 Namespaces in operation, part 5: User namespaces
继续我们的命名空间系列文章,本文看一下用户命名空间,大部分实现于 Linux 3.8。(剩余的工作是 XFS 和其它文件系统中的一些改动;后者在 3.9 被合并)。用户命名空间与用户和组 ID 相映射。这意味着一个进程在某个用户命名空间内的用户和组 ID 可以与用户命名空间外的不同。最重要的是,一个进程可以在一个命名空间外有一个非 0 的用户 ID ,同时在命名空间内有一个为 0 的用户 ID;换...
2019-11-01 11:13:55
393
翻译 Namespaces in operation, part 4: more on PID namespaces
在本文中,我们将继续上周关于 PID 命名空间的讨论(并扩展我们正在进行的关于命名空间的系列文章)。PID 命名空间的一个用途是实现一个进程包(容器),其行为类似于一个自包含的 Linux系统。init 进程是传统系统和 PID 命名空间容器的关键部分。因此,我们将研究 init 进程的特殊角色,并着重于它与传统 init 进程不同的几个方面。此外,我们还将研究命名空间 API 应用于 PID 命...
2019-10-30 12:01:40
299
翻译 Namespaces in operation, part 1: namespaces overview
Linux 3.8 合并窗口接受了 Eric Biederman 的大量用户命名空间及相关的补丁。尽管仍有一些细节待完成,例如,许多 Linux 文件系统还不知道用户命名空间,但用户命名空间的实现已经在功能上完成了。用户命名空间的完成是一个里程碑。首先,这项工作代表了迄今为止命名空间中最复杂实现之一的完成,因为自从用户命名空间实现首次实现(在Linux2.6.23中)以来,已经有五年左右的时间了...
2019-10-29 19:21:39
335
翻译 Namespaces in operation, part 2: the namespaces API
命名空间将全局系统资源包装在一个抽象中,使得命名空间中的进程认为它们拥有独立的资源实例。命名空间可用于多种目的,最重要的是实现容器,一种轻量级虚拟化技术。本系列的第二篇文章将看一下命名空间的一些细节和 API。本系列中的第一篇文章对命名空间进行了总览。本文将看一下命名空间 API 中的一些细节,并在一些例子中展示运行中的 API。命名空间 API 包含三个系统调用:clone(),unshare...
2019-10-29 17:20:32
273
翻译 Namespaces in operation, part 3: PID namespaces
接着前两篇命名空间文章(Part 1: namespaces overview and Part 2: the namespaces API),现在看一下 PID 命名空间。与 PID 命名空间相关的全局资源就是进程 ID 数字空间。这意味着在不同 PID 命名空间中的进程可以有相同的进程 ID。PID 命名空间实现的容器可在主机之间迁移,并保持容器内的进程 ID 不变。对于传统 Linux (...
2019-10-28 22:28:38
357
原创 Node.js --- http-server
安装npm install http-server -g运行http-server -p 1234-p 后面是端口号,可以换就可以在浏览器中访问了,记得加端口号,无需写一行代码就有了一个 server
2019-10-22 15:30:53
207
原创 Node.js --- require 中的全局变量
obj.jsvar S // 全局变量function init(value) { S = { s: value }}init('hello')console.log("obj.js: " + S.s)module.exports = { S: S, init: init}ref.jsvar obj = ...
2019-10-21 16:00:25
1028
原创 Node.js --- 重定向
var http = require('http');http.createServer(function(request, response) { response.writeHead(301, {Location: 'http://baidu.com'}); response.end()}).listen(3000);console.log('Serv...
2019-10-18 18:13:44
237
Rx_Net35_SP1
2019-03-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人