
牛客网
文章平均质量分 57
沙漏dan
我感受到的压力都是来自于我自己不努力不积极而又不甘于现状的恐慌
展开
-
牛客网 二进制中1的个数
题目:二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解答:解答参考:二进制中1的个数利用了位运算# -*- coding:utf-8 -*-class Solution: def NumberOf1(self, n): # write code here return sum([(n>>...转载 2018-08-06 15:25:14 · 249 阅读 · 0 评论 -
python 浅拷贝 深拷贝
Python 直接赋值、浅拷贝和深度拷贝解析牛客网题目:What gets printed?() 直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 # 浅拷贝>>>a = {1: [1,...转载 2018-08-21 08:51:57 · 683 阅读 · 0 评论 -
牛客网 python (1)
1. python my.py v1 v2 命令运行脚本,通过 from sys import argv如何获得v2的参数值? sys.argv是传递给python脚本的命令行参数【字符串】列表argv[0]为该脚本自身路径,其余为命令行参数2. 以”\0”结尾是C/C++中存在,在python中不存在3. python中主要存在四种命名方式:1、object #公用方法...原创 2018-08-21 10:07:46 · 882 阅读 · 0 评论 -
牛客网 合唱团
题目描述有 n 个学生站成一排,每个学生有一个能力值,牛牛想从这 n 个学生中按照顺序选取 k 名学生,要求相邻两个学生的位置编号的差不超过 d,使得这 k 个学生的能力值的乘积最大,你能返回最大的乘积吗?输入描述:每个输入包含 1 个测试用例。每个测试数据的第一行包含一个整数 n (1 <= n <= 50),表示学生的个数,接下来的一行,包含 n 个整数,按顺序表示每...转载 2018-08-21 14:25:13 · 662 阅读 · 0 评论 -
牛客网 构造队列
题目:构造队列题目描述小明同学把1到n这n个数字按照一定的顺序放入了一个队列Q中。现在他对队列Q执行了如下程序:while(!Q.empty()) //队列不空,执行循环{ int x=Q.front(); //取出当前队头的值x Q.pop(); //弹出当前队头 Q....转载 2018-08-28 20:05:07 · 214 阅读 · 0 评论 -
牛客网 跳石板
题目:跳石板题目描述小易来到了一条石板路前,每块石板上从1挨着编号为:1、2、3.......这条石板路要根据特殊的规则才能前进:对于小易当前所在的编号为K的 石板,小易单次只能往前跳K的一个约数(不含1和K)步,即跳到K+X(X为K的一个非1和本身的约数)的位置。 小易当前处在编号为N的石板,他想跳到编号恰好为M的石板去,小易想知道最少需要跳跃几次可以到达。例如:N = 4,M =...原创 2018-08-28 22:08:34 · 406 阅读 · 0 评论 -
小Q的歌单
题目给一个歌单固定长度为K 有两种歌:X首长度为A,Y首长度为B的歌,A!=B 问有几种组合搭配 如: 输入 K = 5,A = 2 X = 3 B = 3 Y = 3 输出 9 由于结果比较大,因此输出结果取1000000007的余数。解析:小Q的歌单K = int(input())list = list(map(int,input().split(' ')))...转载 2018-08-31 22:46:25 · 319 阅读 · 0 评论 -
牛客网 暗黑的字符串
题目:暗黑字符串题目描述一个只包含'A'、'B'和'C'的字符串,如果存在某一段长度为3的连续子串中恰好'A'、'B'和'C'各有一个,那么这个字符串就是纯净的,否则这个字符串就是暗黑的。例如:BAACAACCBAAA 连续子串"CBA"中包含了'A','B','C'各一个,所以是纯净的字符串AABBCCAABB 不存在一个长度为3的连续子串包含'A','B','C',所以是暗黑的字符...转载 2018-08-29 20:09:43 · 197 阅读 · 0 评论 -
牛客网 最大的奇约数
题目:最大的奇约数小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11.现在给出一个N,需要求出 f(1) + f(2) + f(3).......f(N)例如: N = 7 f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 +...原创 2018-08-29 21:10:00 · 223 阅读 · 0 评论 -
牛客网 数列还原
题目:数列还原题目描述牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包...原创 2018-08-25 18:49:10 · 234 阅读 · 0 评论 -
牛客网 旋转数组的最小值
题目:旋转数组的最小值把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。第一种思路是提交了的代码中的最上边的几种解法第二种思路来自于一本书,总体是采用的二分的思想...原创 2018-09-08 21:48:40 · 200 阅读 · 0 评论 -
整数的二进制表达式中有多少个1
题目:给定一个32位整数n,可为0,可为正,也可为负,返回该整数二进制表达中1的个数解法:一、最简单的解法整数n每次进行无符号右移一位,检查最右边的bit是否为1来进行统计,代码如下:public int count1(int n){ int res=0; while(n!=0){ res+=n&1; n>>...转载 2018-09-09 09:13:44 · 979 阅读 · 0 评论 -
在其他数都出现偶数次的数组中找到出现次数为奇数次的数
参考自程序员代码面试指南其他数都出现偶数次的数组中找到出现奇数次的数字 整数n与0异或的结果为n,n与n异或的结果为0public void printOddTimesNum1(int[] arrs){ int eO=0; for(int x:arrs){ eO=eO^x; } System.o...原创 2018-09-12 10:02:36 · 1216 阅读 · 0 评论 -
其他数都出现了k次的数组中找到只出现一次的数
参考自程序员代码面试指南题目:给定一个整型数组,和一个大于1的整数k,已知arr中只有一个数出现了一次,其他的数都出现了k次,请返回只出现一次的数。要求:时间复杂度为O(N),额外空间复杂度为O(1);下面的例子是两个七进制数的无进位相加:a: 6 4 3 2 6 0 1b: 3 4 5 0 1 1 1r: 2 1 1 2 0 1 2(结果)两个七进制的a和b,...转载 2018-09-12 12:13:18 · 662 阅读 · 0 评论 -
只用位运算不用算术运算实现整数的加减乘除运算
参考自程序员代码面试指南题目:确定两个32位整数a和b,可正可负、可0。不能使用算术运算符,分别实现a和b的加减乘除运算。要求:如果给定的a和b执行加减乘除的某些结果本来就会导致数据的溢出,那么你实现的函数补习对那些结果负责。用位运算实现加法运算,如果在不考虑进位的情况下,a^b就是正确结果,因为0加0位0(0&0),0加1位1(0&1),1加0为1(1&...转载 2018-09-12 15:07:22 · 1031 阅读 · 1 评论 -
数值的整数次方
快速求幂算法解法来自于:牛客网-试题广场-数值的整数次方public class Solution { public double Power(double base, int exponent) { int n=Math.abs(exponent); if(n==0) return 1; if(n==1...原创 2018-09-10 15:01:20 · 106 阅读 · 0 评论 -
牛客网 分田地
题目:分田地输入描述:每个输入包含 1 个测试用例。每个测试用例的第一行包含两个整数 n 和 m(1 <= n, m <= 75),表示田地的大小,接下来的 n 行,每行包含 m 个 0-9 之间的数字,表示每块位置的价值。输出描述:输出一行表示牛牛所能取得的最大的价值。示例1输入4 43332323333322323输出2解答...转载 2018-08-23 10:58:40 · 339 阅读 · 0 评论 -
牛客网 数字游戏
题目:数字游戏题目描述小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你...转载 2018-08-27 10:17:50 · 293 阅读 · 0 评论 -
牛客网 地牢逃脱
题目:地牢逃脱题目描述给定一个 n 行 m 列的地牢,其中 '.' 表示可以通行的位置,'X' 表示不可通行的障碍,牛牛从 (x0 , y0 ) 位置出发,遍历这个地牢,和一般的游戏所不同的是,他每一步只能按照一些指定的步长遍历地牢,要求每一步都不可以超过地牢的边界,也不能到达障碍上。地牢的出口可能在任意某个可以通行的位置上。牛牛想知道最坏情况下,他需要多少步才可以离开这个地牢。输入描...转载 2018-08-22 11:43:05 · 271 阅读 · 0 评论 -
牛客网 反转列表
题目:输入一个链表,反转链表后,输出新链表的表头。解法:参考反转列表# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回ListNode ...转载 2018-08-06 22:58:01 · 227 阅读 · 0 评论 -
牛客网 从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。解法:最直接的想法就树的广度遍历,解题思路参考树的广度优先遍历# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# ...原创 2018-08-07 09:26:55 · 226 阅读 · 0 评论 -
牛客网 二叉树中和为某一值的路径
题目:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)解答:参考 二叉树中和为某一值的路径# class TreeNode:# def __init__(self, x):# self.val = x...转载 2018-08-07 10:32:31 · 248 阅读 · 0 评论 -
牛客网 机器学习题目
SVM核函数:线性核函数、多项式核函数、径向基核函数、高斯核函数、幂指数核函数、拉普拉斯核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数以及Sigmoid核函数,傅里叶核,样条核 参考SVM核函数关于 logit 回归和 SVM 不正确的是(A)A. Logit回归目标函数是最小化后验概率B. Logit回归可以用于预测事件发生概率的大小C. SVM...原创 2018-08-14 20:55:18 · 4691 阅读 · 1 评论 -
牛客网 复杂链表的复制
题目:输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)解答:思路参考:《苦练算法》-剑指Offer- 二十五、复杂链表的复制 -python编写先复制原来链表复制相互之间的random关系将两个链表拆分...转载 2018-08-07 15:36:39 · 260 阅读 · 0 评论 -
牛客网 字符串的排列
题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。解法:参考:python itertools模块指南字符串的排列利用了itertools.permutations(iterable[, r])iterable是迭代器(对象) r是迭代长度,默...转载 2018-08-07 19:07:54 · 737 阅读 · 0 评论 -
牛客网 连续子数组的最大和
题目:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...转载 2018-08-07 19:37:45 · 549 阅读 · 0 评论 -
牛客网 丑数
题目:把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。解答:最直接的想法是从小到大依次判断每个数是否是丑数,直至找到第n个丑数,但是提交时显示运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。参考别人的解法:丑数#...转载 2018-08-07 22:17:19 · 189 阅读 · 0 评论 -
牛客网 数组中的逆序对
题目:在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007解答:最直接的想法,是两个for循环嵌套,求解所有的逆序对,但是复杂度太高。后参考数组中的逆序对,利用了归并排序的想法,详细思路参照:【算法32】计算数组中的逆序对# -...转载 2018-08-08 10:20:47 · 468 阅读 · 0 评论 -
牛客网 二叉树的深度
题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解答:找到二叉树中的所有路径,然后获取最长的路径的长度。找到二叉树中所有路径的方法参照:牛客网 二叉树中和为某一值的路径# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, ...原创 2018-08-08 10:45:37 · 267 阅读 · 0 评论 -
牛客网 和为S的连续正数序列
题目:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!解法:自己的想法是利用(a1+an)*...原创 2018-08-08 11:56:06 · 157 阅读 · 0 评论 -
牛客网 和为S的两个数字
题目:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出:对应每个测试案例,输出两个数,小的先输出。解法:自己的想法是一个标记指向最小值,然后判断sum-array[low]是否在数组中,如果在计算积并存储,最终输出积最小的结果。class Solution: def FindNu...原创 2018-08-08 12:14:43 · 203 阅读 · 0 评论 -
牛客网 不用加减乘除做加法
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。解答:看到题目,最直接的想法应该是按照二进制的计算,然而看到好多人提交的是用sum()函数。二进制计算方法,参考:Python 解决面试题47 不用加减乘除做加法# -*- coding:utf-8 -*-class Solution: def Add(self, num1, num...原创 2018-08-08 15:13:08 · 238 阅读 · 0 评论 -
牛客网 构建乘积数组
题目:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。解法:参考构建乘积数组,思路如下:解释下代码,设有数组大小为5。对于第一个for循环第一步:b[0] = 1;第二步:b[1] = b[0] * a[0] = a[0]...转载 2018-08-08 16:39:37 · 231 阅读 · 0 评论 -
牛客网 正则表达式匹配
题目:请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配解答:参考 正则表达式# -*- coding:utf-8 -*-class ...转载 2018-08-08 17:01:40 · 311 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
题目源自于牛客网:思路一:用类似冒泡的思路,每次循环,如果相邻的两个数,前者为偶数,后者为奇数,则两者交换思路二:类似插入排序的思路,每次循环,从做到右找奇数,找到第一个奇数,就把它移到前面去,把前面的数字移后思路三:借用另外两个数组,分别存储奇数和偶数,最后将两个数组合并思路四:借用队列,从左到右找偶数,每找到一个偶数,就将其放在队尾,从右到左找奇数,找到一个就放在队首。思路...原创 2018-09-10 15:20:21 · 232 阅读 · 0 评论