- 博客(159)
- 资源 (21)
- 收藏
- 关注
原创 GO学习3:数据类型
在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:序号 类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2 数字类型...
2019-09-18 17:10:38
234
原创 GO学习2:语法基础
Go 标记Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")标记是:fmt.Println("hello world")行分隔符在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由...
2019-09-18 17:09:00
248
原创 GO学习1:语言结构
Go 语言的基础组成有以下几个部分:包声明、引入包、函数、变量、语句&表达式、注释package mainimport "fmt"func main() { /* 这是注释 */ fmt.Println("Hello, World!")}其中 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如...
2019-09-18 16:52:08
330
原创 GO安装以及GoLand配置
1、下载go下载地址:https://golang.google.cn/dl/2、windows 安装Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi)的安装包来安装。默认情况下.msi文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 PATH 环境变量中。添加后你需要重启命令窗口才能生...
2019-09-18 16:36:20
3690
原创 leetcode:9. 回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文...
2019-06-05 16:11:49
162
原创 leetcode:8. 字符串转换整数 (atoi)
请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...
2019-06-05 15:47:22
124
原创 leetcode:整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231, 231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...
2019-06-05 15:24:55
149
原创 leetcode:Z字形变换
将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定行数变换的...
2019-06-05 14:51:53
406
原创 leetcode:最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解法1:暴力法菜鸡的我第一想法只能想到暴力法,遍历各种可能结果class Solution {public: string longe...
2019-06-05 10:02:10
176
原创 剑指offer:矩阵中的路径
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的...
2019-06-04 22:00:13
221
原创 剑指offer:二叉树中和为某一值的路径
题目:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)//全局变量 vector<vector<int>> res;//保存最终结果 vector<int> path;//保存每一次的路径...
2019-06-04 16:50:57
142
原创 剑指offer:二叉搜索树与双向链表
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向分析:中序遍历并将遍历顺序的结点存起来,最后遍历添加每个指针的前后指针域即可。vector<TreeNode*> nodes; //中序遍历(将结点指针尾插在vector中) void tranverse(TreeNode* pRoot) {...
2019-06-04 16:50:13
133
原创 leetcode:寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组nums1 和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中...
2019-06-03 11:01:55
414
原创 leetcode:无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最...
2019-06-03 09:52:16
118
原创 leetcode:两数相加
给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -...
2019-06-03 09:39:45
140
原创 leetcode:两数之和
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...
2019-06-03 09:39:09
133
转载 求最小公倍数
输出: 35分析:最小公倍数=两个数的乘积/最小公倍数#include <iostream>using namespace std; int main(){ int A; int B; cin>>A>>B; int muli=A*B;//保存A和B的乘积 //先求最大公约数 whil...
2019-05-31 16:16:26
148
原创 24进制转换为10进制
题目:有一个字符串形式表示的24进制数字M,需要转换成10进制数字N,M为无符号数字,可用32位整数存储,以字母0123456789abcdefghijklmn分别表示数字0-23分析:将24进制数的每一位按照乘以其对应的权值,最后将其加起来int reverse(string& s){ string table("0123456789abcdefghijklmn"); ...
2019-05-31 16:14:18
1782
原创 是否为合法的入栈序
题目:已知两个字母序列,一个是入栈序,一个是出栈序,把入栈序列按出现顺序压入一个栈,在入栈的任意过程中,允许栈中的字母出现,所有字母都是由大小写组成,并且不重复出现。现在需要判断已知的出栈序是不是合法的。分析:借助一个栈,根据入栈序和出栈序模拟给定过程,拿着入栈序看此时要不要出栈,如果全过程模拟完毕顺利(入栈序走完,并且栈为空)说明合法,否则说明不合法。//检查入队出队序列#inc...
2019-05-31 16:13:49
254
原创 二维数组打印
题目:有一个二维数组(n*n),写程序实现从右上角到左下角沿主对角线方向打印。给定一个二位数组arr及题目中的参数n,请返回结果数组。测试样例:[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]],4返回:[4,3,8,2,7,12,1,6,11,16,5,10,15,9,14,13]分析:沿着主对角线方向,每次元素下标都要各加1,直到超出边...
2019-05-31 16:10:19
362
原创 另类加法
题目:分析:亦或表示不算进位之和,与右移一位表示进位值class UnusualAdd {public: int addAB(int A, int B) { // write code here //位运算符 while(B!=0) { int sum=A^B;//不...
2019-05-31 16:09:50
144
原创 n*m的棋盘
题目:分析:递归法每次向右、向下走(行规模减1此时列规模不变,加上列规模减1此时行规模不变),递归出口是行列规模都是0就返回0,只要有一个是0,就说只剩一条路了返回1即可。#include <iostream>using namespace std; int process(int n, int m){ if (m == 0 && n ==...
2019-05-31 16:09:04
1236
原创 井子棋
题目:class Board {public: bool checkWon(vector<vector<int> > board) { // write code here int rows = board.size(); int cols = board[0].size(); ...
2019-05-31 16:08:26
401
原创 密码强度等级
题目:#include <iostream>#include <string> using namespace std; int GetLen(string& s){ int len = s.size(); if (len <= 4) return 5; else if (len >= 5 && len &...
2019-05-31 16:07:18
244
原创 最近公共祖先
题目:分析:哪个大哪个先向上走,走到相遇为止int getLCA(int a, int b) { // write code here while(a!=b) { if(a>b)//a先向上走 { a=a/2; } ...
2019-05-31 16:06:18
145
原创 求最大连续bit数
题目:分析:挨着统计,遇到更长的替换Maxint main(){ int n; while(cin>>n) { int max=0; for(int i=0;i<8;i++) { int count=0; while(((n>>i)&...
2019-05-31 16:05:23
159
原创 [编程题]进制转换
链接:https://www.nowcoder.com/questionTerminal/ac61207721a34b74b06597fe6eb67c52来源:牛客网[编程题]进制转换热度指数:20634 时间限制:1秒 空间限制:32768K给定一个十进制数M,以及需要转换的进制数N。将十进制数M转化为N进制数输入描述:输入为一行,M(32位整数)、N(2 ≤ N ≤ 16...
2019-05-23 12:25:20
1957
原创 [编程题]计算糖果
链接:https://www.nowcoder.com/questionTerminal/02d8d42b197646a5bbd0a98785bb3a34来源:牛客网A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息:A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.现在需...
2019-05-23 12:20:50
290
原创 [编程题]字符串中找出连续最长的数字串
链接:https://www.nowcoder.com/questionTerminal/bd891093881d4ddf9e56e7cc8416562d?orderByHotValue=0&page=1&onlyReference=false来源:牛客网读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str...
2019-05-22 11:29:44
792
原创 剑指offer:和为S的连续正数序列
题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出:所有和为S的连续正数序列。序列内按照从小...
2019-05-21 08:37:43
128
原创 剑指offer:数组中只出现一次的数字
题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。分析:方法(1):先遍历一遍数组,计算出所有元素亦或结果sum,按照sum是1的比特位将原数组分成2组,那两个单独的数组必然被分到两组,因为是他俩不同的比特位才造成sum的1的,然后亦或其中一组找到其中一个数组n1,然后用sum亦或这个n1得到n2。void FindNumsAppear...
2019-05-21 08:36:37
118
原创 剑指offer:求1+2+3+...+n
题目:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。分析:利用构造函数、静态变量求解。class Sum { private: static int n; static int sum; public: static void R...
2019-05-21 08:35:08
147
原创 剑指offer:二叉树的深度
题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。分析:递归,一棵二叉树的高度等于1+max{左子树高度,右子树高度} int TreeDepth(TreeNode* pRoot) { if(pRoot==nullptr) return 0; ...
2019-05-21 08:34:30
140
原创 数字在排序数组中出现的次数
题目:统计一个数字在排序数组中出现的次数。分析:方法(1):从头开始遍历统计等于k的元素的个数方法(2):利用stl库中的函数equal_range,它返回一对迭代器(以pair的形式),这对迭代器之间的元素都是k,左闭右开方法(3):二分查找(找到从前往后第一个k下标,从后往前第一个下标即可)int GetNumberOfK(vector<int> data...
2019-05-21 08:33:50
161
原创 剑指offer:两个链表的第一个公共结点
题目:输入两个链表,找出它们的第一个公共结点。分析:先计算两个链表长度,让长的那个先走差距步,然后一起走,相遇时就是答案。ListNode* FindFirstCommonNode( ListNode* pHead1, ListNode* pHead2) { if(pHead1==nullptr || pHead2==nullptr) return...
2019-05-21 08:24:50
148
原创 剑指offer:数组中的逆序对
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007题目保证输入的数组中没有的相同的数字数据范围:对于%50的数据,size<=10^4对于%75的数据,size<=10^5对于%100的数据,size<=...
2019-05-21 08:24:00
147
原创 剑指offer:第一个只出现一次的字符
题目:在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).分析:方法(1):用一个数组count,记录每个字母出现的次数,最后遍历字符串,看看其对应的次数是不是1,满足找第一次出现1次的字母。int FirstNotRepeatingChar(string str) {...
2019-05-21 08:17:08
138
原创 剑指offer:丑数
题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。分析:首先从丑数的定义我们知道,一个丑数的因子只有2,3,5,那么丑数p = 2 ^ x * 3 ^ y * 5 ^ z,换句话说一个丑数一定由另一个丑数乘以2或者乘以3或者乘以5得到,那么我们从1开始乘...
2019-05-21 08:16:15
125
原创 组队竞赛
题目:链接:https://www.nowcoder.com/questionTerminal/6736cc3ffd1444a4a0057dee89be789b?orderByHotValue=1&page=1&onlyReference=false来源:牛客网牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组...
2019-05-21 08:04:04
201
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人