网站建设捌金手指花总八,库车网站建设,美术教师网站建设心得体会,哈尔滨市招标网官网366. 斐波纳契数列#xff1a;查找斐波纳契数列中第 N 个数。 所谓的斐波纳契数列是指#xff1a; 前2个数是 0 和 1 。 第 i 个数是第 i-1 个数和第i-2 个数的和。 斐波纳契数列的前10个数字是#xff1a; 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ... 给定 1#xff0c;返回 …366. 斐波纳契数列查找斐波纳契数列中第 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 参考答案 def fibonacci(self, n): # write your code here i 0 a,b 0, 1 while i n-1: a,b b,ab i 1 return a 9. Fizz Buzz 问题 给你一个整数n. 从 1 到 n 按照下面的规则打印每个数 如果这个数被3整除打印fizz. 如果这个数被5整除打印buzz. 如果这个数能同时被3和5整除打印fizz buzz. 比如 n 15, 返回一个字符串数组 [ 1, 2, fizz, 4, buzz, fizz, 7, 8, fizz, buzz, 11, fizz, 13, 14, fizz buzz ] 参考答案 def fizzBuzz(self, n): # write your code here result [] for i in range(1,n1): if i %15 0: result.append(fizz buzz) elif i%50: result.append(buzz) elif i%30: result.append(fizz) else: result.append(str(i)) return result 157. 判断字符串是否没有重复字符 实现一个算法确定字符串中的字符是否均唯一出现 给出abc返回 true 给出aab返回 false 参考答案 def isUnique(self, str): results [] new_results [] for i in str: results.append(i) for i in str: if i not in new_results: new_results.append(i) if resultsnew_results: return True else: return False 172. 删除元素 给定一个数组和一个值在原地删除与值相同的数字返回新数组的长度。 元素的顺序可以改变并且对新的数组不会有影响。 给出一个数组 [0,4,4,0,0,2,4,4]和值 4 返回 4 并且4个元素的新数组为[0,0,0,2] 参考答案 def removeElement(self, A, elem): i 0 n len(A) while in: if A[i]elem: n-1 del A[i] else: i1 return n 6. 合并排序数组 合并两个排序的整数数组A和B变成一个新的数组。 给出A[1,2,3,4]B[2,4,5,6]返回 [1,2,2,3,4,4,5,6] 参考答案 def mergeSortedArray(self, A, B): for i in range(len(A)): B.append(A[i]) B sorted(B) return B 463. 整数排序 给一组整数按照升序排序使用选择排序冒泡排序插入排序或者任何 O(n2) 的排序算法。 对于数组 [3, 2, 1, 4, 5], 排序后为[1, 2, 3, 4, 5]。 参考答案 def sortIntegers(self, A): n len(A) for i in range(n-1): tempi for j in range(i1,n): if A[j]A[temp]: A[j],A[temp]A[temp],A[j] A[temp],A[i]A[i],A[temp] print(A) 100. 删除排序数组中的重复数字 给定一个排序数组在原数组中删除重复出现的数字使得每个元素只出现一次并且返回新的数组的长度。 不要使用额外的数组空间必须在原地没有额外空间的条件下完成。 给出数组A [1,1,2]你的函数应该返回长度2此时A[1,2]。 参考答案 循环数组找到下一个元素A[i1]等于A[i]就删除A[i1] 注意的是循环次数需要 -1避免索引超限。 def removeDuplicates(self, A): i 0 while i len(A)-1: if A[i] A[i1]: A.remove(A[i]) else: i 1 return len(A) 101. 删除排序数组中的重复数字 II 跟进“删除重复数字” 如果可以允许出现两次重复将如何处理 参考答案 允许重复一次则直接检查元素A[i2]是否等于A[i]即可 因为如果A[i2]等于A[i]那么A[i1]也等于A[i] 此时删除A[i2]即可。 当然循环次数需要 -2 def removeDuplicates(self, nums): i 0 while i len(nums)-2: if nums[i] nums[i2]: nums.remove(nums[i]) else: i 1 return len(nums) 2. 尾部的零 设计一个算法计算出n阶乘中尾部零的个数 11! 39916800因此应该返回 2 参考答案 对于n来说每当有5必出现一个零所以其实计算n以内有多少个5即可。 if n 0 : return 1 x 1 while n5: x n/5 n n/5 return x-1