自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 AcWing 32. 调整数组顺序使奇数位于偶数前面

题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序。使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。样例输入:[1,2,3,4,5]输出: [1,3,5,2,4]算法(头尾指针扫描) O(n)用两个指针分别从首尾开始,往中间扫描。扫描时保证第一个指针前面的数都是奇数,第二个指针后面的数都是偶数。每次迭代时需要进行的操作:第一个指...

2019-03-25 17:33:12 178

原创 AcWing 28. 在O(1)时间删除链表结点

题目描述给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。假设链表一定存在,并且该节点一定不是尾节点。样例输入:链表 1->4->6->8 删掉节点:第2个节点即6(头节点为第0个节点)输出:新链表 1->4->8算法要求在O(1)时间,所以就不能遍历,要智取,我们可以将要删除节点的下一个节点赋值给当前节点,再...

2019-03-25 17:10:49 141

原创 AcWing 26. 二进制中1的个数

题目描述输入一个32位整数,输出该数二进制表示中1的个数。注意:负数在计算机中用其绝对值的补码来表示。样例1输入:9输出:2解释:9的二进制表示是1001,一共有2个1。样例2输入:-2输出:31解释:-2在计算机里会被表示成11111111111111111111111111111110, 一共有31个1。Python3 代码###...

2019-03-25 16:56:36 157

原创 AcWing 25. 剪绳子

题目描述给你一根长度为nn绳子,请把绳子剪成mm段(mm、nn都是整数,2≤n≤582≤n≤58并且m≥2m≥2)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]k[1] … k[m] 可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到最大的乘积18。样例输入:8输出:18算法查资料网上搜...

2019-03-25 16:43:46 146

原创 AcWing 22. 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个升序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。数组可能包含重复项。注意:数组内所含元素非负,若数组大小为0,请返回-1。样例输入:nums=[2,2,2,0,1]输出:0Python3 代码...

2019-03-25 14:49:38 141

转载 Python中下划线的5种含义

作者:地球的外星人君链接:https://zhuanlan.zhihu.com/p/36173202来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。分享一篇文章:The Meaning of Underscores in Python。本文介绍了Python中单下划线和双下划线("dunder")的各种含义和命名约定,名称修饰(name mangli...

2019-03-25 14:33:16 120

原创 AcWing 21. 斐波那契数列

题目描述输入一个整数nn,求斐波那契数列的第nn项。假定从0开始,第0项为0。(nn<=39)样例输入整数 n=5 返回 5Python3 代码1(递归-Time Limit Exceeded)### Python3 代码1class Solution(object): def Fibonacci(self, n): """...

2019-03-25 14:27:56 190

原创 AcWing 20. 用两个栈实现队列

题目描述请用栈实现一个队列,支持如下四种操作:push(x) – 将元素x插到队尾; pop() – 将队首的元素弹出,并返回该元素; peek() – 返回队首元素; empty() – 返回队列是否为空;注意:你只能使用栈的标准操作:push to top,peek/pop from top,size和is empty; 如果你选择的编程语言没有栈的标准库,你可以使...

2019-03-25 14:02:46 209

原创 AcWing 19. 二叉树的下一个节点

题目描述给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点。注意:如果给定的节点是中序遍历序列的最后一个,则返回空节点; 二叉树一定不为空,且给定的节点一定不是空节点;样例假定二叉树是:[2, 1, 3, null, null, null, null], 给出的是值等于2的节点。则应返回值等于3的节点。解释:该二叉树的结构如下,2的后继节点是3。 2 ...

2019-03-25 13:44:10 101

原创 AcWing 18. 重建二叉树

题目描述输入一棵二叉树前序遍历和中序遍历的结果,请重建该二叉树。注意:二叉树中每个节点的值都互不相同; 输入的前序遍历和中序遍历一定合法;样例给定:前序遍历是:[3, 9, 20, 15, 7]中序遍历是:[9, 3, 15, 20, 7]返回:[3, 9, 20, null, null, 15, 7, null, null, null, null]返回的二叉树如下...

2019-03-25 12:01:03 130

原创 AcWing 17. 从尾到头打印链表

题目描述输入一个链表的头结点,按照从尾到头的顺序返回节点的值。返回的结果用数组存储。样例输入:[2, 3, 5]返回:[5, 3, 2]Python3 代码### Python3 代码# Definition for singly-linked list.# class ListNode(object):# def __init__(self,...

2019-03-22 17:00:18 119

原创 AcWing 16. 替换空格

题目描述请实现一个函数,把字符串中的每个空格替换成"%20"。你可以假定输入字符串的长度最大是1000。注意输出字符串的长度可能大于1000。样例输入:"We are happy."输出:"We%20are%20happy."Python3 代码### Python3 代码class Solution(object): def replaceSpa...

2019-03-22 09:29:09 83

原创 AcWing 15. 二维数组中的查找

题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。样例输入数组:[ [1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]如果输入查找数值为7,则返回true,如果输入查找数值为...

2019-03-21 15:29:08 102

原创 AcWing 13. 找出数组中重复的数字

题目描述给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0∼n−1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。注意:如果某些数字不在 0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1;样例给定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。...

2019-03-21 15:16:32 144

原创 LintCode 8.旋转字符串 C++

问题描述:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例:对于字符串 "abcdefg".offset=0 => "abcdefg"offset=1 => "gabcdef"offset=2 => "fgabcde"offset=3 => "efgabcd"分析:好了,我将开始我的表演。首先获取字符串str的长度len,然后如果长度为0或或旋转

2018-02-02 16:01:11 530

原创 LintCode 394.硬币排成线 395.硬币排成线Ⅱ C++

394.硬币排成线Ⅰ问题描述:有 n 个硬币排成一条线。两个参赛者轮流从右边依次拿走 1 或 2 个硬币,直到没有硬币为止。拿到最后一枚硬币的人获胜。请判定 第一个玩家 是输还是赢?样例:n = 1, 返回 true. n = 2, 返回 true. n = 3, 返回 false. n = 4, 返回 true. n = 5, 返回 true.挑战:O(1) 时间复杂

2018-02-02 09:11:58 261

原创 LintCode 14.二分查找 C++

问题描述:给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例:在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。分析:二分查找,又叫折半查找,,是一种高效率的查找方式,查找的前提是被查找的数据必须是有序的。二分查找的思想是找到查找区间

2018-01-31 14:17:56 298

原创 LintCode 9.Fizz Buzz 问题 C++

问题描述:给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz.如果这个数能同时被3和5整除,打印fizz buzz.样例:比如 n = 15, 返回一个字符串数组:[  "1", "2", "fizz",  "4", "buzz", "fizz",  "7", "8", "fizz",  "

2018-01-31 11:38:25 462

原创 LintCode 6.合并排序数组II C++

问题描述:合并两个排序的整数数组A和B变成一个新的数组。样例:给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]分析:首先要有两个变量i、j来遍历两个数组,只要A、B两个数组有一个没有遍历完,就要进行操作。考虑到A和B的长度不同,当A遍历完时,将B中剩余元素全部放入C尾;当B遍历完时,将A中剩余元素全部放入C尾。否则,A、B均未遍历完,比较A[i]

2018-01-31 10:05:40 269

原创 类型转换 里氏转换 关键字As和Is C#

类型转换从根本上说是类型铸造,或者说把数据从一种类型转换为另一种类型。在 C# 中,类型铸造有两种形式:隐式转换—指C#默认的以安全方式进行的转换,不会导致数据丢失。例如,从小存储容量的数据类型转换为大存储容量的数据类型,从派生类转换为基类。显式转换—又称强制转换。显式转换需要强制转换运算符,转换类型的范围大小和从属关系和隐式转换相反。强制转换可能会导致数据出错、丢失,或者转换

2018-01-29 13:09:02 325

原创 LintCode 2.尾部的零 C++

LintCode 2.尾部的零 C++问题描述:设计一个算法,计算出n阶乘中尾部零的个数样例:11! = 39916800,因此应该返回2分析:把1×2×3×4×……×n中每一个数因式分解,会出现:1×2×3×(2×2)×5×(2×3)×…… 像这样。十进制数结尾的有多少个0,就表示其因数里有多少个10——其他进制也一样,一个M进制的数,让结尾多一个0就等价于乘以M。对于十

2018-01-27 16:22:15 351

原创 LintCode 463.整数排序 冒泡排序 C++

问题描述:给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2)的排序算法。样例:对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。分析:根据个人喜好,我对冒泡最熟了,所以用它,先要用A.size()获取数组A的长度n,冒泡排序最坏的情况下需要有n-1趟排序,即循环n-1次。第i次循环(第i趟排序)要比较n-i次。从网上找了冒

2018-01-27 15:09:29 215

原创 LintCode 366.斐波那契数列 C++

问题描述:查找斐波纳契数列中第 N 个数。所谓的斐波纳契数列是指:前2个数是0 和 1 。第 i个数是第 i-1 个数和第i-2 个数的和。斐波纳契数列的前10个数字是:0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...样例:给定1,返回0给定2,返回1给定10,返回34方法一:递归,但循环次数较多,时间复杂度较高。Lin

2018-01-27 14:46:04 215

原创 LintCode 466.链表节点计数 C++

问题描述:计算链表中有多少个节点.样例:给出 1->3->5, 返回 3.我觉得这可能是在LintCode中看到的最简单、最合我胃口的题了,不说了,直接粘代码吧。/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNo

2018-01-26 21:30:26 311

原创 LintCode 452.删除链表中的元素 C++

问题描述:删除链表中等于给定值val的所有节点。样例:给出链表 1->2->3->3->4->5->3,和val = 3,你需要返回删除3之后的链表:1->2->4->5。// Definition for singly-linked list.struct ListNode { int val; ListNode *next; ListNode(int x)

2018-01-26 16:29:24 406

原创 LintCode 1.A+B问题 C语言

问题描述:给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。样例:如果a=1并且b=2,返回3分析:不能使用数学运算符,我们就要转而考虑位运算符了,a和b的异或运算被称作没有进位的加法运算。可以想一下,异或运算,1和1相加,结果为0进位为1,0和0相加还是0 ,1和0还有0和1相加都是1,后三种情况都没有进位(或进位为0)。那么,只有1和1的情况下产生了进位,这种正好符

2018-01-26 15:22:06 435

空空如也

空空如也

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

TA关注的人

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