- 博客(228)
- 资源 (20)
- 收藏
- 关注
原创 203、移除链表元素
另外,在实现的时候无论用一个指针还是两个指针都是可以的;节点值是否等于val的if……else逻辑区分清楚就好。一个指针指向pre、一个指针指向cur。,请你删除链表中所有满足。给你一个链表的头节点。
2024-07-26 20:01:16
142
原创 53、最大子数组和
而且,在推到的过程中我们必须选择了nums[i]],否则由dp[0~i-1]推到dp[i]无从谈起。dp[i]表示以nums[i]为结尾的最大的子数组和。,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。—— 其实就是每次当前面的和为负数的时候就都抛掉计算新的和;注:i被选取是非常合理的,因为我们最终取的结果是max(dp[0~i])。很多时候贪心的思路在感性上就非常的直观。连续子数组 [4,-1,2,1] 的和最大,为 6。最终结果去dp[0~i]的最大值即可。
2024-07-21 18:02:02
248
原创 96、不同的二叉搜索树
h(n)表示以1~n为头结点的二叉树种类数,显然有: G(n) = h(1) + h(2) + h(3)。集合BST特性知:。2、以第i个元素为根节点时其对应的个数=[1, i-1]个元素构成的左子树种类 * [i+1, n]构成右子树种类。即:dp[3] = dp[0]*dp[2] + dp[1]*dp[1] + dp[2]*dp[0]此时其右子树是由{2,3}两个数构成的BST.其实 这里的右子树{2,3}完全可以看成{1,2}因为{1,2}构成的BST和{2,3}构成的BST的个数是完全一样的!
2024-07-18 15:48:42
861
原创 25、K个一组反转链表
2)然后就是对批次内的k个元素进行反转,这里的反转其实就是将head指向的每个元素依次作为cur的next插入进去。1)首先我们要记录下每批次的头结点(被反转后它会作为结果的尾节点),我们需要在一批次结束后用其更新cur指针。外层只需要借助一个指针记录每批次处理完后cur应该出入的新位置即可。是一个正整数,它的值小于或等于链表的长度。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。内层在插入节点的时候也借助个临时指针,这没啥好说的。的整数倍,那么请将最后剩余的节点保持原有顺序。
2024-06-27 17:22:39
323
原创 19、删除链表的倒数第n个节点
(2)这里重点就是要却确定p_cur1移动多少步后,p_cur2也跟着一起移动;关于这个点{1,2,3,4,5}比划一下就比较清楚了;(3)另外就是在输入链表前追加一个节点便于返回数据的玩法了,这个应该作为基本操作死死地记住。(1)毋庸置疑,肯定是要双指针了(p_cur1/p_cur2);给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。你能尝试使用一趟扫描实现吗?
2024-06-24 21:25:42
312
原创 C++STL梳理
尽管不同容器对应着不同类别的迭代器,但这些迭代器有着较为统一的定义方式,具体分为 4 种,如表 1 所示。表 2 迭代器的 4 种定义方式迭代器定义方式具体格式正向迭代器容器类名::iterator 迭代器名;常量正向迭代器容器类名::const_iterator 迭代器名;反向迭代器容器类名::reverse_iterator 迭代器名;常量反向迭代器容器类名::const_reverse_iterator 迭代器名;
2024-06-24 20:29:51
806
原创 VSCode调试C++
开源、功能强大(高亮/自动补齐都是最基本的功能);轻量,相对xcode轻量太多;几乎可以用来编写所有的语言、甚至写文档,只要安装对应插件即可;个性化配置程度高;
2024-04-03 19:56:15
1715
原创 kubernetes之实战进阶篇
本质上将包括前面的kubectl命令行工具、后边编写配置文件最终其实都是调用的api。k8s又更细的比较频繁,不同版本的api也会有些差异;所以还是要了解下api的一些东西。关于api的概念可以参考中文官网:Kubernetes API 概念 | KubernetesREST API是k8s系统的重要部分,组件之间的所有操作和通信都是由API Server处理的REST API调用,大多数情况下API的定义和实现都符合 HTTP REST格式。
2024-03-31 13:20:04
1372
原创 kubernetes之概念入门篇
kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是然该部署容器化的应用简单而且高效,kubernetes提供了应用部署,规划,更新,维护的一种机制。其实提到管理容器第一想到的肯定是docker compose,只不过他是单主机的;而k8s是天然的用于多主机管理的应用,显然功能更加强大。kubernetes这个名字源于希腊语,以为“舵手”、“飞行员”。“K8S”这个缩写是因为k和s之间有八个字符,所以这样缩写。
2024-03-12 19:57:14
948
原创 docker学习进阶篇
从应用软件的角度来看,Dockerfile、Docker镜像与Docker容器分别代表软件的三个不同阶段,Dockerfile是软件的原材料Docker镜像是软件的交付品Docker容器则可以认为是软件镜像的运行态,也即依照镜像运行的容器实例Dockerfile面向开发,Docker镜像成为交付标准,Docker容器则涉及部署与运维,三者缺一不可,合力充当Docker体系的基石。Dockerfile,需要定义一个Dockerfile,Dockerfile定义了进程需要的一切东西。
2024-03-08 11:33:55
1230
原创 docker学习入门篇
docker官网: www.docker.comdockerhub官网: hub.docker.comdocker文档官网:docs.docker.comDocker是基于Go语言实现的云开源项目。Build, Ship and Run Any App, Anywhere(构建,装载任何应用在任何地方),也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP及其运行环境能做到一次镜像,处处运行。
2024-03-08 11:27:16
1428
原创 一文了解docker与k8s
随着 k8s 作为容器编排解决方案变得越来越流行,有些人开始拿 Docker 和 k8s 进行对比,不禁问道:Docker 不香吗?其实 Docker 和 k8s 并非直接的竞争对手两者相互依存。 Docker 是一个容器化平台,而 k8s 是 Docker 等容器平台的协调器。(1)虚拟化技术已经走过是三个时代,没有容器化技术的研究就不会有Docker技术的诞生。1)物理机时代: 多个应用程序排在一台机器上。2)虚拟机时代:一台物理机器安装多个虚拟机(VM),一个虚拟机跑多个程序。3)容器化时代:一台物理
2024-02-27 19:21:38
2498
4
原创 6.ELK之Elasticsearch嵌套(Nested)类型
在Elasticsearch实际应用中经常会遇到嵌套文档的情况,而且会有“对象数组彼此独立地进行索引和查询的诉求”。在ES中这种嵌套文档称为父子文档,父子文档“彼此独立地进行查询”至少有以下两种方式:1)父子文档。在ES的5.x版本中通过parent-child父子type实现,即一个索引对应多个type;对于6.X+版本由于不再支持一个索引多个type,所以父子索引的实现改成了Join。2)Nested嵌套类型。
2023-11-07 19:51:16
3871
1
原创 22.MongoDB删除操作效率及相关问题验证
最近遇到一个了一个MongoDB数据删除的问题,需要一次性删除上线即1.5年前~1年前的数据且之后每天清空一年过期的数据。在数据量比较大的情况下何种方式的删除效率最高是一个值得研究的问题,本文通过实际测试找出其中规律。本文采用腾讯云mongodb集群进行验证。mongd配置较弱为2核4G,验证仅仅针对副本集不涉及分片集群。测试数据集如下,共计1000w条数据。接下来会以systime字段作为筛选条件验证影响删除操作耗时的因素都有哪些。
2022-12-17 19:27:28
2182
2
原创 3.ELK之Logstash安装与使用
Logstash 是一个开源的数据收集引擎。它具有实时的数据传输能力,可以按照我们定制的规范来做数据的收集、解析和存储。也就是说Logstash有3个核心组成部分,分别是数据收集、数据解析和数据转存。这个三个部分组成了一个类似于管道的数据流,由输入端进行数据的采集,管道本身做数据的过滤和解析,输出端把过滤和解析后的数据输出到目标数据库中。大致翻一下官方手册可以看到其功能还是非常强大的。
2022-10-01 10:11:47
2824
原创 内存检查工具valgrind介绍、安装与使用
关于内存泄漏动态检查的工具有很多,其中使用最广泛的可能就是valgrind了。面向应用,valgrind是内存调试(例如排查内存泄漏)十分得力的工具。
2022-08-19 16:24:45
973
原创 Linux下的web服务器搭建
有时间好好研究这个。一、httpd简介 apache server(httpd),作为非常流行的web服务器,长期以来稳居第一。Apache httpd又可以简称为httpd或者Apache,是Internat使用最广泛的web服务器之一,使用Apache提供的web服务器是由守护进程httpd通过http协议进行文本传输,默认使用http(端口80)的明文传输方式。当然后来为了保证数据的安全和可靠性,有添加了https(端口443)的加密传输方式。Linux中web服务器的搭建与....
2022-08-09 10:06:53
10625
5
原创 5.ELK之ElasticSearch集群状态(shard unassigned排查)
elastic状态及shard unassigned排查
2022-06-20 17:12:38
6609
原创 wiresharks抓包分析(tcpdump抓包并还原请求体)
前言:先说下今天遇到的一个问题。和外部门同学对接消息记录拉取,采用的是pb协议,接口机的L5暴露给对方用以拉取。对方请求后表示IO超时没有收到对应回包,于是对方质疑我方有问题。现需要排查原因,更准确说如何找证据打脸对方。分析:我方业务是相对成熟的,这种问题大概率是对方发过来的请求不对,例如缺少某些字段导致接口机无法将请求转发给后方业务机。注:经过沟通发现对方不能打印请求体(具体原因也不管了)。思路无非如下(其中第二点是此次研究的重点):①首先tcpdump抓包看看我方究竟有没有收到对方的请求;.
2022-06-15 20:46:32
635
2
原创 4.ELK之Elasticsearch常用curl命令
一、前言:其实官网上都有相关的kibana API按照curl的形式赋值出来就行了。举个例子:如下对比查看索引的kibana指令与curl指令。#kibana指令,查看es集群下的索引GET /_cat/indices?v#如下为复制出来的对应curl指令#注:对于使用者来说记得把ip:port更换成你当前的ip:port并且确保能访问通就可以了curl -X GET "localhost:9200/_cat/indices?v"#如下都是可以的curl -X GET ".
2022-05-27 20:24:05
16625
1
原创 linux的/proc/{pid}/maps介绍及使用(定位内存泄漏)
1、介绍简单来说就是查看进程的虚拟地址空间是如何使用的。总共包括六列,每列及其含义如下。address | perms | offset | dev | inode | pathname(1)地址:本段在虚拟内存中的地址范围;对应vm_area_struct中的vm_start和vm_end。(2)权限:本段的权限; r-读,w-写,x-执行, p-私有;对应vm_flags。(3)偏移地址:即本段映射地址在文件中的偏移;对于有名映射指本段映射地址在文件中的偏移,对应vm_pgoff;对于匿
2022-04-03 12:43:39
11552
1
原创 python发起http请求(httplib)
记录学习经历一个可用的实例如下。关于lib几个函数的使用介绍参见这里: 这里#!/usr/bin/python#coding:utf-8import httplib,urllibhttpClient =Nonetry: params =urllib.urlencode({'uin':2852199330}) #headers = {"Content-Type": "application/json", "Accept": "text/plain"} header...
2022-03-01 21:10:52
1237
原创 腾讯云dts使用注意事项
如下是mongodb之间的数据迁移的一些注意点。DTS使用注意事项:(1)dts迁移是什么维度的迁移?? 这个是可选的。可以全量迁移、也可以全量+增量的迁移。可以指定整个实例的迁移、也可以指定db甚至指定集合进行迁移。(2)目标数据库建立同名db、同名集合经过验证这些都是ok的;会给你一个提示。他的实际玩法是发现有了这些之后dts就会跳过这些步骤,进入后续阶段。(3)验证一下dts对于索引的处理。源库的索引会被原封不动的同步过来,经过验证确实如此。所以说你需要确保这些索...
2021-11-29 16:14:09
997
原创 18.MongoDB之balancer
可以参考分片集群的介绍这里可以参见chunk预分片的介绍 这里关于均衡及官网介绍这里 这里前言:使用MongoDB当你对Chunk、Split、Balancer(甚至于jumbo chunk、autosplit)有一定了解后,Mongo对于你就不在是一个整体了,分分合合、动态平衡的视角应该在你的脑海中呈现。一、balancer(均衡器)简介1、简介①Balancer是一个监视各个shard上的chunk数的后台进程;②他运行在Config Server副本集的prim...
2021-11-26 15:05:21
2996
原创 17.Mongodb预分片(pre-split)/autosplit(chunk/jumbochunk相关)
一、为什么要预先分片有的时候mongodb的读写量并不是很大,但是cpu负载相对较高;另外有时候在迁移数据的时候发现整体的进度好慢。这个时候可能就需要留意两种情况了:一个是mongodb是否频繁的balance;另一个是否有频繁的split操作。通过手动预分片我们可以尽量的避免这种频繁balance和split对cpu和IO资源的消耗。二、chunk数以及chunk范围等的查看看 还是那句话,建立反馈机制非常重要。最理想的情况就是你的每一个操作都有迹可循、都......
2021-11-25 15:58:06
1785
5
原创 同源策略与跨域
前言:最近业务上前端同学多次联系说访问腾讯云cos资源的时候因为跨域的问题访问不到。大致看了下腾讯云关于设置跨域访问的教程,按照前端同学给的域名等选项就给配了,而且测试下来也是好的。但是呢一直不知道什么是跨域这里就做一个简单的学习记录。一、同源策略同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也是最基本的安全功能。同源策略会阻止一个域的javascrip脚本和另一个域的内容进行交互,是用于隔离潜在恶意文件的关键安全机制;关于这一点我们后面会举例说明。...
2021-11-21 18:12:59
19122
8
转载 TCP,UDP,IP数据包格式详解
在 TCP/IP 协议中,使用 IP 协议传输数据的包被称为 IP 数据包,每个数据包都包含 IP 协议规定的内容。IP 协议规定的这些内容被称为IP 数据报文(IP Datagram)或者IP 数据报。IP 数据报文由首部(称为报头)和数据两部分组成。首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。每个 IP 数据报都以一个 IP 报头开始。源计算机构造这个 IP 报头,而目的计算机利用 IP 报头中封装的信息处理数据..
2021-11-09 11:39:06
9262
原创 Linux安装配置 VNC Server
1、安装图形化界面(1)查看当前的运行级别和可以安装的groupsystemctl get-defaultyum grouplist注意:这里list的结果如下没有“GNOME Desktop”之类的而且下面的语句也执行提示不存在就以为这这个镜像缺少相关的源。当然对于云服务器这个问题还是比较好解决的,例如重装一个centos的系统之类的。然后安装GNOME桌面环境yum groupinstall "GNOME Desktop" "Graphical Administrat...
2021-10-27 21:02:13
1263
原创 wireshark学习使用
零、安装的话网上很多。一、入门使用的话可以参考这个,如何抓起安装机本地网卡的数据、已经常用的filter语法。wireshark抓包新手使用教程 - jack_Meng - 博客园二、对于远端机器一个常用的玩法就是使用tcpdump抓取数据包文件,然后用本地的wireshark来看。晚点研究下。三、如何用wireshark抓远端机器的数据呢?——肯定是能的。晚上搜“wireshark 抓取远程linux服务器 数据包” 之类的就能搜到很多。我们这里就看一下,mac w..
2021-10-25 11:08:02
268
原创 libcurl学习及简易封装类
前言:不管是学啥东西,第一时间找到源码、找到官网比什么都强。这里应该就官网了:libcurl - the multiprotocol file transfer library各种下载(各种平台 源码/二进制下载)curl - Downloadlibcurl简介:零、libcurl学习1、简介。libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sockPHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)。...
2021-10-05 13:58:48
472
MD5 C++程序算法实现
2022-11-28
互联网大厂面经/面试 智力题整理 后台开发 C++ 春招 秋招 社招 笔记整理 大厂面试整理
2022-11-27
pthread_create传递参数(线程函数传递参数示例)
2022-04-28
protobuf根据DebugString输出字串反解pb对象的实例(C++)
2021-10-21
基于protobuf反射特性的pb、json相互转换的实例程序(C++)
2021-10-21
libcurl使用实例、基于libcurl封装的方便用户使用的easy_curl类 以及该类的使用实例
2021-10-21
解析amr文件时长c++实例代码(包含arm语音文件实例)
2021-10-21
Protobuf使用手册.doc
2020-03-28
VMwareTools-10.2.0-7259539.tar.gz
2018-12-08
libbsd-0.8.3-1.el7.x86_64安装依赖库
2018-09-26
Unix环境高级编程第三版源码与源码配置说明
2018-09-26
valgrind-3.11.0.tar.bz2
2018-08-16
Maven+SpringMVC+Dubbo 简单的入门demo配置
2018-08-15
maven+springmvc+dubbo+zookeeper的生产消费者模型。
2018-08-14
SpringMVC demo
2018-08-13
mysql-connector-java-8.0.11.jar
2018-08-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人