牛客网
Alfred king
这个作者很懒,什么都没留下…
展开
-
最大累加数组问题(最大子序和问题)
题目描述给定一个数组arr,返回子数组的最大累加和例如,arr = [1, -2, 3, 5, -2, 6, -1],所有子数组中,[3, 5, -2, 6]可以累加出最大的和12,所以返回12.[要求]时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)示范[1, -2, 3, 5, -2, 6, -1]123+5+(-2)+6=12思路分析这是一个很有意思的问题,如果我们用暴力法,逐个相加对前一个和进行比较这是一个很繁琐的问题,但是我们可以使用分治法,提高效率,遍历这个数组原创 2020-11-27 20:02:08 · 124 阅读 · 0 评论 -
牛客网算法题:寻找最小的K个数 (python实现)
题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。范例:输入:[4,5,1,6,2,7,3,8],4输出:[1,2,3,4]思路:我们只需要将数组排好序,然后进行切片即可,然后对于数组长度小于K的则需返回空代码:class Solution: def GetLeastNumbers_Solution(self, tinput, k): tinput.sort() res原创 2020-11-04 20:34:48 · 666 阅读 · 2 评论 -
牛客网算法题--输出第k行的杨辉三角的值
题目描述:给出一个索引k,返回杨辉三角的第k行例如,k=3,返回[1,3,3,1].示例输入:3输出:[1,3,3,1]思路分析:杨辉三角的规律就是每一行的首个元素都为1,最后一个元素也为1,其余元素为上一个元素的相邻元素之和代码class Solution: def getRow(self , rowIndex ): ans=[1] if rowIndex==0: return ans elif ro原创 2020-10-16 15:46:15 · 378 阅读 · 0 评论 -
牛客网--数组中出现一次的数字
题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路分析:我们可以通过python中的count运算,统计出现一次的数字,并将其新增到一个空的列表,返回即可class Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): res=[] for i in array: if array.co原创 2020-09-30 10:30:13 · 183 阅读 · 0 评论 -
牛客网--华为机试题目:计算字符个数
题目描述:写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。实例:输入:ABCDEFA输出:1思路分析:我们只需要将所需要的字符串和查找的字符统一变为大写或者小写即可,通过count()函数统计并输出str=input()str=str.upper()cha=input()cha=cha.upper()print(str.count(cha))...原创 2020-09-27 09:03:28 · 121 阅读 · 0 评论 -
牛客网题目翻转字串(python实现)
题目描述:假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。测试样例:"Hello world","worldhello "返回: False"waterbottle","erbottlewat"返回:True思路原创 2020-09-20 19:57:45 · 133 阅读 · 0 评论 -
空格替换--牛客网算法题(python实现)
题目描述请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。给定一个string iniString 为原始的串,以及串的长度 int len, 返回替换后的string。测试样例:"Mr John Smith”,13返回:"Mr%20John%20Smith"”Hello World”,12返回:”Hello%20%20World”思路我们只需使用python原创 2020-09-20 15:29:44 · 179 阅读 · 0 评论 -
牛客网--确定字符互异(python实现)
题目请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。测试样例:"aeiou"返回:True"BarackObama"返回:False实现思路:我们可以通过集合的无重复性,进行编码。我们只需要比较使用集合前后字符串的长度是否有发生变化即可代码class原创 2020-09-20 14:49:28 · 183 阅读 · 0 评论 -
牛客网题目--回文数字
题目来源:点击这里便可以在线编程题目描述:在不使用额外的内存空间的条件下判断一个整数是否是回文数字提示:负整数可以是回文吗?(比如-1)如果你在考虑将数字转化为字符串的话,请注意一下不能使用额外空间的限制你可以将整数翻转。但是,如果你做过题目“反转数字”,你会知道将整数翻转可能会出现溢出的情况,你怎么处理这个问题?方法:将数字转为字符串,并倒置来比较代码:class Solution: def isPalindrome(self , x ): # write co原创 2020-09-14 09:25:25 · 213 阅读 · 0 评论 -
牛客网补充C语言实现寻找最k大数字
题目来源以及python实现int findKth(int* a, int aLen, int n, int K ) { // write code here int i=0; int temp; int j; for(i=0;i<aLen-1;i++) for(j=0;j<aLen-1-i;j++)//进行冒泡排序,需要注意j的条件 if(a[j]>a[j+1]){ temp原创 2020-09-08 13:22:10 · 112 阅读 · 0 评论 -
牛客网题目--寻找第K大数字,百度研发面试题目(python实现)
题目描述:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。测试样例:[1,3,5,2,2],5,3返回:2补充说明:由于本人还没有开始学习所有数据结构的相关内容,因此都是用比较基础的知识去实现,等我这学期结束之后,将会对相关题目用相关的算法加以实现。思路分析:我们只需要对数组进行排序,然后根据列表的一些基础知识便可实现。class Finder: def findKth原创 2020-09-07 23:36:23 · 297 阅读 · 0 评论