自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(247)
  • 资源 (2)
  • 收藏
  • 关注

原创 有符号数和无符号数一起做运算的坑

今天做道LeetCode的简单题踩到坑了。LeetCode传送门我一开始写的代码是class Solution {public: int countGoodSubstrings(string s) { int ans=0; for(int i=0;i<s.length()-2;i++){ if(s[i]!=s[i+1]&&s[i]!=s[i+2]&&s[i+1]!=s[i+2])

2021-11-08 15:28:18 513

原创 推送功能学习笔记

从 0 到 1 搭建技术中台之推送平台实践:高吞吐、低延迟、多业务隔离的设计与实现腾讯信鸽 - 百亿级别的消息推送背后的技术了解下小米、华为、魅族等手机有厂商通道,厂商本身会为用户设备维护一个长连接,会为设备分配客户端唯一标识(token),用来做为长连接通道的标识,依据这个标识将消息送达到对应的客户端上。对于没有厂商通道的设备,需要进行终端 Service 保活。终端 Service 保活朴素的做法是为每个 App 起一个独立 Service、建立一个长连接。推送平台(即业务后台)..

2021-07-19 18:48:52 364

原创 判断一棵二叉树是否为搜索二叉树和完全二叉树(牛客网 / 中序遍历、层次遍历)

题目链接题目描述给定一棵二叉树,已经其中没有重复值的节点,请判断该二叉树是否为搜索二叉树和完全二叉树。输入{2,1,3}输出[true,true]备注:n≤500000思路判断二叉搜索树:中序遍历,每次比较当前节点p和前一个遍历到的节点pre的值,如果p->val小于pre->val说明中序遍历的序列不符合从小到大排列,不是二叉搜索树。完全二叉树和满二叉树不同,完全二叉树满足以下条件:叶子节点都在最后一层或者倒数第二层叶子节点都向左聚拢判断完全二叉树:层次遍

2021-05-15 12:51:02 541

原创 最长不含重复字符的子字符串(LeetCode/双指针+哈希表)

题目链接题目描述请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pw

2021-05-09 15:48:20 233

原创 逆波兰表达式求值(栈 / LeetCode)

题目链接思路用栈模拟即可。Go:func evalRPN(tokens []string) int { var stack []int for _ , i := range tokens { s , err := strconv.Atoi(i) if err==nil{ stack=append(stack,s) } else{ length:=len(stack)

2021-03-20 12:55:54 101

原创 git pull遇到报错:! [rejected]xxx-> xxx (non-fast-forward)

本地做了修改之后再git pull遇到报错:! [rejected]xxx-> xxx (non-fast-forward)这个时候我们有两种处理:保留修改丢弃修改保留修改git stash //保存本地快照git reset --hard //回到本地记录的远程分支所处的版本git pull origin dev:devgit stash pop //把之前本地的修改重新补上丢弃修改git reset --hard //回到本地记录的远程分支所处的版本git pu

2021-03-18 12:56:15 8478

转载 GoLand设置命令行参数

转自https://www.cnblogs.com/sailq21/p/9305373.htmlRun -> Edis Configurations然后开始设置命令行参数如图:

2021-03-07 16:09:45 3734

原创 Go学习笔记(1):下载和安装

下载在下面这个链接中找到系统对应的版本,下载压缩包。https://studygolang.com/dl安装Linuxsudo tar -C /usr/local -xzf go1.14.3.linux-amd64.tar.gz (把压缩包名换成自己下载的)export PATH=$PATH:/usr/local/go/bin验证是否安装成功:go versionMac执行下载的安装包,安装到/usr/local/go验证是否安装成功:go versionwindows见ht

2021-03-06 18:37:22 106

原创 三数之和( 排序+双指针 / LeetCode)

题目链接题目描述给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]提示:0 <= nums.length <= 3

2021-03-03 13:09:08 103

原创 绝对差不超过限制的最长连续子数组( 滑动窗口、multiset / LeetCode)

题目链接题目描述给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。如果不存在满足条件的子数组,则返回 0 。示例 1:输入:nums = [8,2,4,7], limit = 4输出:2 解释:所有子数组如下:[8] 最大绝对差 |8-8| = 0 <= 4.[8,2] 最大绝对差 |8-2| = 6 > 4. [8,2,4] 最大绝对差 |8-2| = 6 &gt

2021-02-21 12:24:36 142

原创 使用apt-get安装包时出现404错误

今天在ubuntu使用apt-get安装包时出现一堆报错如下:????:1 http://mirrors.cloud.aliyuncs.com/ubuntu focal-updates/main amd64 mysql-client-core-8.0 amd64 8.0.22-0ubuntu0.20.04.3????:2 http://mirrors.cloud.aliyuncs.com/ubuntu focal-updates/main amd64 mysql-client-8.0 amd64 8.0

2021-02-20 12:52:58 842

原创 数组的度( 哈希表 / LeetCode )

题目链接题目描述给定一个非空且只包含非负数的整数数组 nums,数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。示例 1:输入:[1, 2, 2, 3, 1]输出:2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3],

2021-02-20 11:34:19 172

原创 最大连续1的个数 III ( 滑动窗口 / LeetCode )

题目链接题目描述给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释: [1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3输出:10解释:[0

2021-02-19 12:08:14 151

原创 交替打印字符串( 多线程 / 信号量 / LeetCode)

题目链接题目描述编写一个可以从 1 到 n 输出代表这个数字的字符串的程序,但是:如果这个数字可以被 3 整除,输出 “fizz”。如果这个数字可以被 5 整除,输出 “buzz”。如果这个数字可以同时被 3 和 5整除,输出 “fizzbuzz”。例如,当 n = 15,输出: 1, 2, fizz, 4, buzz, fizz, 7, 8, fizz, buzz, 11, fizz, 13, 14, fizzbuzz。假设有这么一个类:class FizzBuzz { publi

2021-02-11 12:06:50 191

原创 按序打印( 多线程 / LeetCode )

题目链接题目描述我们提供了一个类:public class Foo { public void first() { print("first"); } public void second() { print("second"); } public void third() { print("third"); }}三个不同的线程 A、B、C 将会共用一个 Foo 实例。一个将会调用 first() 方法一个将会调用 second() 方法还有一个将会调用 third() 方法

2021-02-10 12:22:59 141 1

原创 字符串的排列 ( 滑动窗口 / LeetCode )

题目链接题目描述给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。换句话说,第一个字符串的排列之一是第二个字符串的子串。示例1:输入: s1 = "ab" s2 = "eidbaooo"输出: True解释: s2 包含 s1 的排列之一 ("ba").示例2:输入: s1= "ab" s2 = "eidboaoo"输出: False注意:输入的字符串只包含小写字母两个字符串的长度都在 [1, 10,000] 之间思路显然子串是连续的,因此可

2021-02-10 11:49:55 169

原创 交替打印FooBar ( 多线程 / LeetCode )

题目链接题目描述我们提供一个类:class FooBar { public void foo() { for (int i = 0; i < n; i++) { print("foo"); } } public void bar() { for (int i = 0; i < n; i++) { print("bar"); } }}两个不同的线程将会共用一个 FooBar 实例。其中一个线程将会调用 foo()

2021-02-09 13:52:59 153 1

原创 最长湍流子数组( 暴力模拟 / LeetCode )

题目链接题目描述当 A 的子数组 A[i], A[i+1], …, A[j] 满足下列条件时,我们称其为湍流子数组:若 i <= k < j,当 k 为奇数时, A[k] > A[k+1],且当 k 为偶数时,A[k] < A[k+1];或 若 i <= k < j,当 k 为偶数时,A[k] > A[k+1] ,且当 k 为奇数时, A[k] < A[k+1]。也就是说,如果比较符号在子数组中的每个相邻元素对之间翻转,则该子数组是湍流子数组。返

2021-02-08 10:35:35 151

原创 可获得的最大点数( 滑动窗口 / LeetCode )

题目链接题目描述几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。示例 1:输入:cardPoints = [1,2,3,4,5,6,1], k = 3输出:12解释:第一次行动,不管拿哪张牌,你的点数总是 1 。但是,先拿最右边的卡牌将会最大化你的可

2021-02-06 11:41:54 109

原创 把数字翻译成字符串( DFS / 剑指offer / LeetCode )

题目链接题目描述给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"提示:0 <= num < 231思路直接dfs枚举所有情况,从数字尾部开始

2021-02-02 12:52:24 135

原创 最小体力消耗路径( 并查集 / LeetCode )

题目链接题目描述你准备参加一场远足活动。给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row, col) 的高度。一开始你在最左上角的格子 (0, 0) ,且你希望去最右下角的格子 (rows-1, columns-1) (注意下标从 0 开始编号)。你每次可以往 上,下,左,右 四个方向之一移动,你想要找到耗费 体力 最小的一条路径。一条路径耗费的 体力值 是路径上相邻格子之间 高度差绝对值 的 最大值 决定的。请你返回

2021-01-29 12:00:20 172

原创 MySQL插入大量随机字符串

当我们需要对数据库进行压力测试时,要生成大量的随机字符串并插入到数据库中。生成指定长度的随机字符串的函数DELIMITER $$create function rand_string (n int) returns varchar(255)begin declare chars_str varchar(100) default 'abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ123456789'; declare

2021-01-26 16:25:18 670

原创 连通网络的操作次数(并查集 / LeetCode)

题目链接题目描述用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回 -1 。示例

2021-01-23 12:35:38 171

原创 用Python实现四叉树(quad tree)

import numpy as np#正方形类class square: #lx、ly为左上角坐标(x对应行号,y对应列号),rx、ry为右下角坐标 def __init__(self,lx,ly,rx,ry): self.lx=lx self.ly=ly self.rx=rx self.ry=ry #检查该矩阵中是否满足条件 #参数:原矩阵,阈值 #返回值:布尔类型 def check(s

2021-01-20 14:51:52 4803 15

原创 连接所有点的最小费用(最小生成树 / LeetCode)

题目链接题目描述给你一个points 数组,表示 2D 平面上的一些点,其中 points[i] = [xi, yi] 。连接点 [xi, yi] 和点 [xj, yj] 的费用为它们之间的 曼哈顿距离 :|xi - xj| + |yi - yj| ,其中 |val| 表示 val 的绝对值。请你返回将所有点连接的最小总费用。只有任意两点之间 有且仅有 一条简单路径时,才认为所有点都已连接。示例 1:输入:points = [[0,0],[2,2],[3,10],[5,2],[7,0]]输出

2021-01-19 14:21:12 292

原创 深大数据库系统期末考复盘

前言这次数据库的题目比较良心,挺感动的。目录前言选择题(20分)简答题(40分)第一道(25分)第二道(15分)SQL(20分)ER图(20分)选择题(20分)10道,每道2分。挺简单的,大概记得的有下面几个题:视图属于哪部分?外模式给了两个表,问其中一个表的外键数据库规范化理论是为了什么?选了个“xxx数据逻辑结构xxx”的关系模式R中的属性全是主属性,则R的最高范式必定是?3NF,原因触发器修改属性的类型用什么语句? alter table xxx简答题(40分)第一道(2

2021-01-19 13:01:18 2113

原创 深大自动机与形式语言期末考复盘

自动机期末考是真滴难,都感觉要挂科了,写个复盘造福后人目录选择题(20分)判断题(10分)填空题(10分)大题(60分)第一道第二道第三道第四道第五道第六道第七道第八道选择题(20分)选择题一共10道,每道两分。各种奇奇怪怪的题目都有,基本上都是围绕概念来考,比如2型文法的定义、判断四个选项哪个是正则语言、DFA的定义等等,有几道送分的。判断题(10分)判断题10道,每道1分。这部分题几乎全是概念,有几个题看都看不懂,听天由命。填空题(10分)填空题5道,每道两分。这部分还行,有两道.

2021-01-19 12:42:00 779

原创 探究Mysql的“可串行化”隔离级别

前言一直对最高级别的这种隔离级别不太理解,今天来做这里是引用set session transaction isolation level REPEATABLE READ;set session transaction isolation level SERIALIZABLE;show variables like ‘%isolation%’;

2021-01-17 18:29:11 1764

原创 数组中数字出现的次数(分组异或 / 剑指offer / LeetCode)

题目链接题目描述一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制:2 <= nums.length <= 10000思路因为题目说其它数字都出现了两次,而两个相同的数字异或会得到0,因

2021-01-16 13:39:28 71

原创 可被 5 整除的二进制前缀(数学 / LeetCode)

题目链接题目描述给定由若干 0 和 1 组成的数组 A。我们定义 N_i:从 A[0] 到 A[i] 的第 i 个子数组被解释为一个二进制数(从最高有效位到最低有效位)。返回布尔值列表 answer,只有当 N_i 可以被 5 整除时,答案 answer[i] 为 true,否则为 false。示例 1:输入:[0,1,1]输出:[true,false,false]解释:输入数字为 0, 01, 011;也就是十进制中的 0, 1, 3 。只有第一个数可以被 5 整除,因此 answer[0

2021-01-14 11:59:30 149

原创 冗余连接(并查集 / LeetCode)

题目链接题目描述在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边。答案边 [u, v] 应满足相同的格式 u

2021-01-13 12:41:55 105

原创 礼物的最大价值(动态规划 / 剑指offer / LeetCode)

题目链接题目描述在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入: [ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物提示:0 < grid.length <= 2000 <

2021-01-12 12:02:52 76

原创 二维数组中的查找(线性查找 / 剑指offer / LeetCode)

题目链接题目描述在一个 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]]给定 targ

2021-01-11 12:13:03 72

转载 Linux进程六种状态(R、S、D、T、Z、X)

(1)R运行状态(runing):并不意味着进程一定在运行中,也可以在运行队列里;(2)S睡眠状态(sleeping):进程在等待事件完成;(浅度睡眠,可以被唤醒)(3)D磁盘睡眠状态(Disk sleep):不可中断睡眠(深度睡眠,不可以被唤醒,通常在磁盘写入时发生)(4)T停止状态(stopped):可以通过发送SIGSTOP信号给进程来停止进程,可以发送SIGCONT信号让进程继续运行(5)X死亡状态(dead):该状态是返回状态,在任务列表中看不到;(6)Z僵尸状态(zombie):子进程

2021-01-10 16:25:22 6361

原创 买卖股票的最佳时机 III(动态规划 /LeetCode)

题目链接题目描述给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入:prices = [3,3,5,0,0,3,1,4]输出:6解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。 随后,在第 7 天(股票价格 = 1)的时候买入,

2021-01-09 13:17:33 89

原创 Linux下valgrind的安装与使用

valgrind简介Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。它用来构建动态分析工具, 主要具有以下功能:Memcheck,重量级内存检测工具,使用广泛Helgrind,检测多线程中的数据竞争问题Callgrind,检查程序中函数调用过程中出现的问题Cachegrind,检查程序中缓存使用出现的问题Massif,检查程序中堆栈使用中出现的问题Extension,利用core提供的功能,自己编写特定的内存调试工具虽然内存检测工具使用比较广泛,但V

2021-01-09 12:40:19 3527 2

原创 旋转数组(翻转 /LeetCode)

题目链接思路给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释: 向右旋转 1 步: [99,-1,-

2021-01-08 13:22:37 78

原创 分隔链表(链表 /LeetCode)

题目链接题目描述给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入:head = 1->4->3->2->5->2, x = 3输出:1->2->2->4->3->5思路维护两个链表,一个链表保存比x小的结点,另一个链表保存大于等于x的结点,采用尾插法保证相对位置不变,最后让小的链表末尾指向大的链表即可。代码如下:

2021-01-03 13:12:22 75

原创 滑动窗口最大值(单调队列 /LeetCode)

题目链接题目描述给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7

2021-01-02 14:38:30 196

原创 无重叠区间( 贪心 /LeetCode)

题目链接题目描述给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:输入: [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。

2020-12-31 12:20:45 100

十套数据结构试卷及答案

深圳大学数据结构课程练习试卷。 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合,往往同高效的检索算法和索引技术有关。大多数数据结构都由数列、记录、可辨识联合、引用等基本类型构成。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构意味着接口或封装,一个数...

2020-10-03

opencv安装教程

开源计算机视觉(OpenCV)是一个主要针对实时计算机视觉的编程函数库。 最初由英特尔开发,后来由柳树车库支持,后来由伊塞兹支持(后来被英特尔收购)。该库是跨平台的,根据开源BSD许可证免费使用。 OpenCV支持深度学习框架TensorFlow、Torch/PyTorch和Caffe。

2020-10-03

空空如也

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

TA关注的人

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