自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SanfordZhu的博客

仰望星空,脚踏实地。

  • 博客(89)
  • 收藏
  • 关注

原创 最大公约数 辗转相除的原理

最大公约数:指两个或多个整数共有约数中最大的一个。Go代码如下:package mainimport "fmt"func gcd(x, y int) int { for y != 0 { x, y = y, x%y } return x}func main() { fmt.Print(gcd(14, 8))}原理如下:假设有两个数x和y,存在一个最大公约...

2019-09-23 15:44:22 882 1

原创 Go 生成指定位数的随机数/随机字符串

生成指定位数的随机数:代码如下:package mainimport ( "fmt" "math/rand" )func CreateCaptcha() string { return fmt.Sprintf("%06v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(1000000))}...

2019-09-03 21:16:39 4360

原创 Go 代码换行问题

由于之前写C++习惯了,在刚接触Go的时候,因为语句的左花括号必须与当前语句同行,非常的不适应。package mainimport "fmt"func main() { fmt.Print("Hello World")}如上代码所示,这在Go中是不允许的。必须写成如下形式:package mainimport "fmt"func main() { fmt....

2019-08-22 20:11:30 12913

原创 地址重定向 + 抓包工具Charles map remote配置

关于HTTP中重定向的解释:客户浏览器发送http请求-->web服务器接受后发送302状态码响应及对应新的location给客户浏览器-->客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址-->服务器根据此请求寻找资源并发送给客户。我们在charles中设置的map remote就是实现了一个类似重定向的功能。打开C...

2019-08-02 17:06:55 3294

原创 常用linux命令总结

一些基础问题和知识:1.linux中的usr目录是Unix Software Resource的缩写,主要存放软件程序2.为什么要配置环境变量?path用来干什么的?https://blog.csdn.net/Pre_waist_L/article/details/796965073.mac中如何获取文件夹路径?在Finder中显示路径栏,右键将...拷贝为路径名称4.在敲...

2019-08-01 20:12:22 333

原创 Git入门及常用命令总结

什么是Git?Git是目前世界上最先进的分布式版本控制系统。可以有效、高速地处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。下图是经典的git开发流程:可以看一下廖雪峰老师的Git简介:https://www.liaoxuefeng.com/wiki/8960...

2019-07-31 17:31:05 255

原创 Go gorose初探之Mysql配置与数据查询

在这之前先介绍几个概念:什么是gorose?gorose是一个小巧强悍的golang orm,借鉴自laravel's eloquent的优雅api及链式调用,让数据库操作称为一种享受.什么是orm?http://www.ruanyifeng.com/blog/2019/02/orm-tutorial.html阮一峰的网络日志https://blog.csdn.net/u...

2019-07-29 17:45:32 1419

原创 Go go.mod详解

什么是go.mod?Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。Go.mod其实就是一个Modules,关于Modules的官方定义为:Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。Modules替换旧的基于GOPATH...

2019-07-29 14:20:32 75473 15

原创 解决mac上Xmind8编辑卡顿的问题

参考博客:https://www.crifan.com/mac_version_xmind_extremely_slow/根据博客描述,Xmind卡顿的主要原因为版本不是最新,旧版本的兼容性不能随mac系统的更新而提高。而网上的很多教程诸如:https://www.jianshu.com/p/2f9a45484c55解决方法:1、打开应用程序文件夹2、找到xmind所在的位...

2019-07-11 11:16:05 2885

原创 leetcode 784 字母大小写全排列

给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: ["3z4", "3Z4"]输入: S = "12345"输出: ["12345"]注意:S的长度不超过12。S仅...

2019-07-06 16:15:41 259

原创 leetcode 90 子集II

给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]解题思路:我们看到第 4 行黑色的部分,重复了,是怎么造成的呢?第 4 行新添加的 2 要加到第 3 行的所有...

2019-07-06 15:49:28 226

原创 leetcode 78 子集

给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]class Solution {public: vector<vector...

2019-07-05 14:59:45 239

原创 leetcode 62 63 不同路径I和II

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m和 n 的值均不超过 100。示例1:输入: m = 3, n = 2输出: 3解释:从...

2019-07-05 13:43:14 287

原创 leetcode 54 59 螺旋矩阵I和II

给定一个包含m x n个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: ...

2019-07-05 00:25:21 264

原创 leetcode 3 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"w...

2019-07-03 00:08:25 199

原创 leetcode 2 两数之和

给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...

2019-06-21 13:53:03 226

原创 leetcode 459 重复的子字符串

给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复...

2019-06-20 12:43:59 246

原创 leetcode 594 最长和谐子序列

和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明: 输入的数组长度最大不超过20,000.解题思路:用O(n)时间复杂度来实现,首先遍历一次数组,用map记录数字和出现的...

2019-06-20 12:25:36 258

原创 压缩感知--SAMP算法重构图像失败的问题

关于SAMP算法的实现,大多数采用的是莱斯大学的工具箱中的samp或者CSDN彬彬有礼中的CS_SAMP算法。rice大学的工具箱中的samp算法实现如下:function [xr iter_num] = SAMP(y, Phi, step_size, sigma);% SAMP: Sparsity Adaptive Matching Pursuit algoritm for comp...

2019-06-20 11:30:38 3614 15

原创 leetcode 925 长按输入

你的朋友正在使用键盘输入他的名字name。偶尔,在键入字符c时,按键可能会被长按,而字符可能被输入 1 次或多次。你将会检查键盘输入的字符typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回True。示例 1:输入:name = "alex", typed = "aaleex"输出:true解释:'alex' 中的 'a' 和 'e' ...

2019-06-20 00:10:38 248

原创 leetcode 696 计数二进制子串

给定一个字符串s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。重复出现的子串要计算它们出现的次数。示例 1 :输入: "00110011"输出: 6解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。请注意,一些重复出现的子串要计算它们出现的次数。...

2019-06-17 21:57:54 229

原创 leetcode 6 Z字形变换

将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的函数:...

2019-06-08 22:50:01 253

原创 leetcode 1 两数之和

给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]//哈希表...

2019-06-08 16:32:13 216

原创 leetcode 347 前K个高频元素

给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) ,n是数组的大小。...

2019-06-07 17:43:17 204

原创 C++ int、char和string的互相转换

将int转化为char:如121转为['1','2','1'],由于int与char之间的转换需要借助ASC码实现,如1变为’1‘:int t=1;char(t+48);经典的做法是通过栈,从低位到高位逐位读取,存入栈中,再循环pop栈顶元素实现高位到低位的读取。今天看到一种做法:我们可以先把int通过to_string函数转为string类型,然后通过auto关键字遍历字符串,实现从高位...

2019-06-03 16:26:04 3759

原创 leetcode 443 压缩字符串

给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。进阶:你能否仅使用O(1) 空间解决问题?示例 1:输入:["a","a","b","b","c","c","c"]输出:返回6,输入数组的前6个字符应该是:["a"...

2019-06-03 15:50:32 264

原创 leetcode 28 实现strStr()--字符串匹配

实现strStr()函数。给定一个haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回-1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needl...

2019-06-03 13:49:18 314

原创 leetcode 14 最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。解题思路:将第一个字符串的每一位与剩余...

2019-06-03 13:04:44 198

原创 leetcode 反转链表I、反转链表 II

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?解题思路:在遍历列表时,将当前节点的next指针改为指向前一个元素。由于节点没有引用其上一个节点,因此必须事先存储其前一个元素。在更改引用...

2019-06-02 17:06:40 259

原创 leetcode 532 数组中的K-diff数对

给定一个整数数组和一个整数k, 你需要在数组里找到不同的k-diff 数对。这里将k-diff数对定义为一个整数对 (i, j), 其中i和j都是数组中的数字,且两数之差的绝对值是k.示例 1:输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。尽管数组中有两个1,但我们只应返...

2019-05-31 21:34:13 278

原创 leetcode 849 到最近的人的最大距离

在一排座位(seats)中,1代表有人坐在座位上,0代表座位上是空的。至少有一个空座位,且至少有一人坐在座位上。亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座位上。返回他到离他最近的人的最大距离。示例 1:输入:[1,0,0,0,1,0,1]输出:2解释:如果亚历克斯坐在第二个空位(seats[2])上,他到离他最近的人的距离为 2 。如果亚...

2019-05-31 18:59:06 204

原创 C++ 实现LRU缓存机制

对于开发者而言,缓存的接触必不可少,无论是浏览器缓存(如果是chrome浏览器,可以通过chrome:://cache查看),还是服务端的缓存(通过memcached或者redis等内存数据库)。缓存不仅可以加速用户的访问,同时也可以降低服务器的负载和压力。那么,了解常见的缓存淘汰算法的策略和原理就显得特别重要。常见的缓存算法:LRU (Least recently used) 最近最少使...

2019-05-31 15:25:43 2976

原创 leetcode 724 寻找数组的中心索引

给定一个整数类型的数组nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释: 索引3 (nu...

2019-05-30 21:28:47 251

原创 leetcode 674 最长连续递增序列

给定一个未经排序的整数数组,找到最长且连续的的递增序列。示例 1:输入: [1,3,5,4,7]输出: 3解释: 最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 示例 2:输入: [2,2,2,2,2]输出: 1解释: 最长连续递增序列是 [2], 长度为1。注意:数...

2019-05-30 16:40:57 219

原创 leetcode 989 整数形式的整数加法

对于非负整数X而言,X的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果X = 1231,那么其数组形式为[1,2,3,1]。给定非负整数X的数组形式A,返回整数X+K的数组形式。示例 1:输入:A = [1,2,0,0], K = 34输出:[1,2,3,4]解释:1200 + 34 = 1234解释 2:输入:A = [2,7,4],...

2019-05-30 15:57:41 295

原创 leetcode 830 较大分组的位置

在一个由小写字母构成的字符串S中,包含由一些连续的相同字符所构成的分组。例如,在字符串S = "abbxxxxzyy"中,就含有"a","bb","xxxx","z"和"yy"这样的一些分组。我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。最终结果按照字典顺序输出。示例1:输入: "abbxxxxzzy"输出...

2019-05-30 14:54:25 221

原创 leetcode 697 数组的度

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

2019-05-29 21:35:47 290

原创 C++ 实现图片平滑器及矩阵reshape

平滑器在图像处理领域应用较为广泛,可以用来进行去躁操作,灰度值平滑等。其衍生出来的思想还用于卷积神经网络中的卷积核,实现特征的提取和数据的降维。下面是leetcode 661 图片平滑器:leetcode 661图片平滑器包含整数的二维矩阵 M 表示一个图片的灰度。你需要设计一个平滑器来让每一个单元的灰度成为平均灰度(向下舍入) ,平均灰度的计算是周围的8个单元和它本身的值求平均,如果...

2019-05-28 16:14:49 2290

原创 leetcode 189 旋转数组

给定一个数组,将数组中的元素向右移动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...

2019-05-28 15:23:47 246

原创 leetcode88 合并两个有序数组

给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2...

2019-05-27 15:25:53 213

空空如也

空空如也

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

TA关注的人

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