- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 Mac下Sublime text3无法安装Package Control以及中文乱码问题
sublime text3是一款轻量级的代码编辑器,我曾在Windows下配置过,但时间久了就忘了。这次是在mac上配置,在网上查了一些帖子,有的叙述不是很清楚,故记录一下详细过程。在线安装: https://packagecontrol.io/installation (因为网络原因没有成功过)离线安装: https://github.com/wbond/package_control安装...
2019-05-18 19:11:49 1603
原创 剑指Offer :字符串的排列
文章目录1. 题目 11.1 示例1.2 解题思路1.3 代码实现2. 题目 22.1 示例2.2 解题思路2.3 代码实现3. 题目 33.1 解题思路3.2 代码实现1. 题目 1输入一个字符串,打印出该字符串中字符的所有排列。例如,输入字符串 abc,则打印出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。1.1 示例输入:abc输出:abcacbbacbcacbacab1.2 解题思路可以把一个字符串看成由两部分组成:第一
2020-06-26 23:11:49 528
原创 华为OD机试 :找终点
文章目录1.题目大意2.样例输入3.样例输出4.说明5.代码实现1.题目大意给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数。第一步必须从第一元素开始,1<=步长<len/2, 第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数。2.样例输入7 5 9 4 2 6 8 3 5 4 3 93.样例输出24.说明第一步:第一个可选步长选择2,第一个成员7走第2个成员,第二步,第2个成员为9,经过9个成
2020-06-07 12:50:18 5184
原创 华为OD机试 :磁盘容量排序
今天参加华为OD机试,总共有两道机试题,每道题200分,总共400分,华为那边要求是两道题全过。第一道题是磁盘容量排序,其实挺简单的,但我一直没调试好,导致心态直接崩了,后面第二题也没看,看来以后要好好刷题才行。文章目录1.题目大意2.样例输入3.样例输出4.代码实现1.题目大意磁盘的容量单位有M、G、T,其关系为 1T = 1000G、1G = 1000M,如样例所示先输入磁盘的个数,再...
2020-03-08 22:34:09 6598 3
原创 剑指Offer :从上到下打印二叉树
文章目录1. 题目 11.1 示例1.2 解题思路1.3 代码实现2. 题目 22.1 示例2.2 解题思路2.3 代码实现3. 题目 33.1 示例3.2 解题思路3.3 代码实现1. 题目 1不分行从上到下打印二叉树。从上到下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。1.1 示例输入: 8 / \ 6 10 / \ / \ 5...
2020-02-10 12:24:09 485
原创 剑指Offer :树的子结构
文章目录1.题目2.示例3.解题思路4.代码实现1.题目输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。2.示例树 A 3 / \ 4 5 / \ 1 2树B 4 / \ 1 2上面 B 是 A 的子结构,故返回 true。3.解题思路1.在树 A 中找到和树 B 的根结点的值一样的结点 Root。2.接着...
2020-02-07 22:32:26 270
原创 LeetCode :21.合并两个有序链表
文章目录1.题目2.示例3.解法探析3.1 解法 1:迭代法3.1.1 解题思路3.1.2 代码实现3.1.3 复杂度分析3.2 解法 2:递归法3.2.1 解题思路3.2.2 代码实现3.2.3 复杂度分析1.题目将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。2.示例输入:1->2->4, 1->3->4输出:...
2020-02-06 20:24:38 402
原创 LeetCode :206.反转链表
文章目录1.题目2.示例3.解法探析3.1 解法 1:迭代法3.1.1 思路分析3.1.2 代码实现3.1.3 复杂度分析3.1.4 动态图解3.2 解法 2:递归法3.2.1 思路分析3.2.2 代码实现3.2.3 复杂度分析1.题目反转一个单链表。2.示例输入:1->2->3->4->5->NULL输出:5->4->3->2-&g...
2020-02-05 16:14:53 463
原创 剑指Offer :调整数组顺序使奇数位于偶数前面
文章目录1.题目2.解法探析2.1 解法 12.2 解法 22.3 解法 31.题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。2.解法探析2.1 解法 1若在不考虑时间复杂度的情况下,可以从头扫描这个数组,每碰到一个偶数,取出该数字,并把该数字后面的所有数字往前移一位。移完之后在数组的末尾有一个空位,再把该偶数放入...
2020-02-03 21:28:43 249
原创 剑指Offer :删除链表的结点
文章目录1.题目 11.1 题目分析1.2 代码实现2.题目 22.1 题目分析2.2 代码实现1.题目 1在 O(1)时间内删除链表结点。给定单向链表的头指针和一个结点指针,定义一个函数在 O(1)时间内删除该结点。1.1 题目分析在单链表中删除一个结点,常规做法是从链表的头结点开始,顺序遍历查找要删除的结点,并在链表中删除该结点,但这种方式的时间复杂度为 O(n),与题目要求不符。...
2020-02-03 21:18:48 313
原创 剑指Offer :打印从 1 到最大的 n 位数
文章目录1.题目2.解法探析2.1 解法 12.2 解法 22.2.1 Print1ToMaxOfNDigits函数2.2.2 Increment函数2.2.3 PrintNumber函数2.3 解法 32.3.1 Print1ToMaxOfNDigits函数2.3.2 Print1ToMaxOfNDigitsRecursively函数1.题目输入数字 n,按顺序打印出从 1 到最大的 n 位...
2020-02-02 12:15:04 544 2
原创 C++内存管理
内存管理是C++最令人头痛的问题,也是C++最有争议的地方。C++高手从中获得了更好的性能,更大的自由,C++菜鸟获取的则是一遍一遍的检查代码。而这一切都源于C++内存管理的灵活性,其多样的内存分配方式就是其灵活性的最好例证之一。文章目录栈区堆区自由存储区全局/静态存储区常量存储区堆与栈的区别管理方式空间大小碎片问题生长方向分配方式分配效率总结常见的内存处理规则一个程序要运行,就必须先将可执行...
2020-01-29 21:15:14 237 1
原创 剑指Offer-二进制中的1的个数
文章目录1.题目2.必备知识-原码、反码与补码2.1 原码2.2 反码2.3 补码2.4 总结3.解法探析3.1 解法13.2 解法23.3 解法31.题目输入一个整数,输出该数二进制表示中1的个数。2.必备知识-原码、反码与补码2.1 原码将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。如果是8位二进制,则:+1 的原码为:0000 0...
2020-01-29 10:59:42 398
原创 GitHub开源项目推荐
GitHub作为全球最大的同性交友网站,上面有太多大佬分享的开源项目值得我们借鉴和学习。接下来就分享一下我入坑GitHub以来学习或收藏的一些好的开源项目。文章目录1.LeetCodeAnimation2.Crash-Course-Computer-Science-Chinese3.interview4.halo5.awesome-mac6.coding-interview-university...
2020-01-11 13:55:25 1821
原创 剑指Offer-快速排序
剑指Offer上的快速排序的Partition函数与我在数据结构书上学到的不一样,因此就想要探索下这两种不同的处理方式。文章目录1.基本思想2.剑指Offer上的Partition实现3.一般教材上的Partition实现4.总结1.基本思想快速排序的基本思想是基于分治法。在待排序表L[1…n]中任取一个元素pivot作为基准,通过一趟排序将待排序表划分为独立的两部分L[1…k-1]和L[...
2019-12-14 20:16:47 759 2
原创 GO语言学习笔记6-Sort的使用
GoLang标准库的sort包提供了排序切片和用户自定义数据集以及相关功能的函数。Sort操作的对象通常是一个slice,需要满足三个基本的接口,并且能够使用整数来索引。文章目录1.sort实现原理(1) Sort(2) interface(3) quickSort2.Sort内部 []int排序3.代码实现1.sort实现原理Sort排序的函数原型如下所示:(1) Sort// It...
2019-11-30 18:59:48 554
原创 GO语言学习笔记5-defer的使用
文章目录1. 什么是defer2. defer的应用场景3. defer的实现原理4. defer的引用方式5. defer的踩坑点6. 代码示例:示例1:示例2:示例3:1. 什么是deferdefer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。2. defer的应用场景defer语句通...
2019-11-24 19:09:21 648
原创 字符串分割SplitString
C/C++中常用的字符串切割函数有strtok、strtok_s与strtok_r。文章目录1.strtok函数2.strtok_s函数3.strtok_r函数4.SplitString实现1.strtok函数char* strtok(char* str, const char* delim);分解字符串str为一组字符串,delim为分隔符。当strtok在參数str的字符串中发现參...
2019-11-23 18:53:43 647
原创 小心,自定义拷贝函数
编译器在生成拷贝函数时只是简单地将原对象的每一个Non-static数据成员拷贝到目标对象中,这就是所说的浅拷贝。这个过程简单粗暴,如果类中有动态配置的内存,对象中包含资源,问题就会随之而产生。文章目录1.浅拷贝2.深拷贝3.总结首先,我们需要了解一下浅拷贝与深拷贝可能会产生的问题。1.浅拷贝浅拷贝是成员数据之间的一一赋值,又称为Bitwise Copy。但可能会有这样的情况:如果对象包...
2019-11-03 15:38:03 603
原创 区分重载(Overloading)、重写(Overriding)与隐藏(Hiding)
在面向对象(OO)的世界中存在着三个十分容易混淆的概念:重载(Overloading)、重写(Overriding)、隐藏(Hiding)。文章目录1.重载2.重写3.隐藏4.总结1.重载重载是指同一作用域的不同函数使用相同的函数名,但是函数的参数个数或类型不同。重载在C中就已经存在了,正如我们所熟悉的abs函数一样,如下所示:double abs(double); int abs(i...
2019-11-03 11:23:35 581
原创 GO语言学习笔记4-int与string类型转换
1.string转换成int函数原型:// base指定进制(2到36),如果base为0,则会从字符串前置判断,// "0x"是16进制,"0"是8进制,否则是10进制;// bitSize指定结果必须能无溢出赋值的整数类型,// 0、8、16、32、64 分别代表 int、int8、int16、int32、int64。func ParseInt(s string, base int...
2019-07-21 18:35:05 1005
转载 GO语言学习笔记3-int与byte类型转换
1.主机字节序主机字节序模式有两种,大端数据模式和小端数据模式。在网络编程中应注意这两者的区别,以保证数据处理的正确性。例如,网络的数据是以大端数据模式进行交互,而我们的主机大多数以小端模式处理,如果不转换,数据会混乱 。参考:一般来说,两个主机在网络通信需要经过如下转换过程:主机字节序 -> 网络字节序 -> 主机字节序2.大端小端区别大端模式:Big-Endian就是高位字...
2019-07-21 16:46:39 1126
原创 GO语言学习笔记2-int类型的取值范围
相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8、int16、int32、int64、int、uint8、uint16、uint32、uint64、uint。1.各int类型的取值范围如下:int8: -128 ~ 127int16: -32768 ~ 32767int32: -2147483648 ~ 2147483647int64: -922337...
2019-07-21 15:43:06 10240
原创 大数减法(A - B Problem Plus)问题
解题思路:flagA为0表示A为正整数,为-1表示A为负整数;flagB为0表示B为正整数,为2表示B为负整数;而 flag = flagA + flagB。1.当 flag == 0 表示数A为正整数,数B为正整数,则A - B 可能是正整数或负整数;当 flag == 1 表示数A为负整数,数B为负整数,则A - B 可能是正整数或负整数。因为差值可能是正整数,也可能是负整数,所以采...
2019-07-07 18:51:33 2026
原创 大数阶乘(N! Plus)问题
描述有一个正整数N,其中0 < N < 10000,求N的阶乘。样例输入66样例输出544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000计算思路将正整数N从1到N逐位相乘,即1 * 2 * 3… * (N-1) * N。每次相乘后的值会...
2019-06-30 10:33:54 2893 2
原创 GO语言学习笔记1-输入带空格的字符串
最近开始学习GO语言,并做了一些编程练习。有道题要输入带空格的字符串,这在C/C++中很容易实现,但GO中好像并不那么容易。学过C/C++的可能都知道,在C中可以使用gets()函数,在C++可以使用getline()函数来实现输入带空格的字符串。那我们可能要问在GO中有没有类似的函数?答案是否定的。GO语言的标准输入scan 和bufio在GO中除了fmt和os包,我们还可以使用bufio来实...
2019-06-30 08:24:47 7727 1
原创 大数乘法(A * B Problem Plus)问题
解题思路第1步第2步第3步第4步问题描述有两个整数A和B,每个数最大值不超过1000位,求A * B的值。输入输入一个数A和数B,用空格隔开。输出输出A * B的值。样例输入156 744样例输出1800样例输入2-10 678样例输出2-6780样例输入31234567890 45678901234样例输出35639370471397...
2019-06-21 21:27:52 1624
原创 大数加法(A + B Problem Plus)问题
描述有两个正整数A和B,每个数最大值不超过1000位,求A + B = sum。输入第一行输入一个整数N(1 ≤ N ≤ 100),代表测试样例的个数;接下来的N行,每行包含一个数A和数B,以空格隔开。输出将每个测试样例的A + B = sum输出,每个样例之间以空行隔开。样例输入318 2256 74453234673473 7544645548767样例输出Case...
2019-06-15 21:10:31 6644
原创 Olympic Game
描述:每次奥运会期间,大家都非常关注奖牌榜排名的情况。现在我们假设奖牌榜的排名规则,按优先级从高到低如下:1、金牌 数量多的排在前面;2、银牌 数量多的排在前面;3、铜牌 数量多的排在前面;4、若以上三个条件仍无法区分名次,则以国家名称的字典序排列。我们假设国家名称不超过20个字符、各种奖牌数不超过100,且大于等于0。输入:第一行输入一个整数N(0<N<21),代表...
2019-06-07 23:11:13 3303
原创 最小公倍数
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,请设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。示例输入15 27输出135#include<stdio.h> // 求最大公约数(辗转相除法)int gcd(int m, int n){ while (n != 0...
2019-06-01 21:00:40 1460
原创 字符串匹配
判断短字符串中的所有字符是否在长字符串中全部出现。输入描述:输入两个字符串。第一个为短字符,第二个为长字符。输出描述:返回值:0示例输入bcabc输出true#include <stdio.h>#include<string.h> int main(){ char SStr[1000]; // 短字符串 char LS...
2019-05-25 16:01:46 1194
原创 Sublime text3配置C/C++编译环境
安装sublime text3后,一直很喜欢使用它看代码(这个高亮配色真的很好看)。它默认的运行环境就有C/C++,在写了一个hello world!后正常输出,但在使用scanf()作为输入后无法输入,这就很尴尬了。在网上搜了一下,这个问题好像无解,只能自己安装gcc/g++,然后配置一下,通过调用命令窗口解决。这里简单记录一下配置过程。一.准备工作下载sublime text3,并安装...
2019-05-18 19:09:33 1518
原创 公共字串计算
计算两个字符串的最大公共字串的长度,字符不区分大小写。详细描述:接口说明原型:int getCommonStrLength(char * pFirstStr, char * pSecondStr);输入参数:char * pFirstStr //第一个字符串char * pSecondStr//第二个字符串C程序#include<stdio.h>#include&l...
2019-05-17 21:14:06 1146
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人