python_day_9:20180724
496. 下一个更大元素 I
给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。
nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。
思路:
本题简单
1 class Solution: 2 def nextGreaterElement(self, nums1, nums2): 3 """ 4 :type nums1: List[int] 5 :type nums2: List[int] 6 :rtype: List[int] 7 """ 8 result=[] 9 for i in nums1: 10 result.append(self.nfind(i,nums2)) 11 return result 12 def nfind(self,item,nums): 13 i=nums.index(item) 14 for k in nums[i:]: 15 if k >item: 16 return k 17 return -1
412. Fizz Buzz
写一个程序,输出从 1 到 n 数字的字符串表示。
1. 如果 n 是3的倍数,输出“Fizz”;
2. 如果 n 是5的倍数,输出“Buzz”;
3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
思路:
本题简单
1 class Solution: 2 def fizzBuzz(self, n): 3 """ 4 :type n: int 5 :rtype: List[str] 6 """ 7 result=[] 8 for i in range(1,n+1): 9 result.append(self.choose(i)) 10 return result 11 def choose(self,i): 12 result='' 13 if i%3==0: 14 result+='Fizz' 15 if i%5==0: 16 result+='Buzz' 17 if i%3!=0 and i%5!=0: 18 result+=str(i) 19 return result
169. 求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。
你可以假设数组是非空的,并且给定的数组总是存在众数。
思路:
因为众数一定存在,所以就用单边判断来找,不用考虑不成立的情况。
1 class Solution: 2 def majorityElement(self, nums): 3 """ 4 :type nums: List[int] 5 :rtype: int 6 """ 7 result=dict() 8 for i in nums: 9 if i not in result.keys(): 10 result[i]=nums.count(i) 11 if result[i]>len(nums)/2: 12 return i
504. 七进制数
给定一个整数,将其转化为7进制,并以字符串形式输出。
思路:
这代码怎么看都觉得太丑了。思路是,先用最大的7的幂数去敲击目标数,敲下来一块后,剩下的继续用7的幂数敲击,最后掰下来一块块的数字,感觉很蠢
1 class Solution: 2 def convertToBase7(self, num): 3 """ 4 :type num: int 5 :rtype: str 6 """ 7 result=[0 for i in range(len(str(num))*2)] 8 number=abs(num) 9 if num==0: 10 return '0' 11 while number>=0: 12 if number>=7: 13 for i in range(number): 14 if 7**i>number: 15 result[-i]=number//(7**(i-1)) 16 number-=(number//(7**(i-1)))*7**(i-1) 17 break 18 19 else: 20 result[-1]=number 21 number=-1 22 for k in range(len(result)): 23 if result[k] >0: 24 result=result[k:] 25 break 26 if num>=0: 27 outcome='' 28 else: 29 outcome='-' 30 for i in result: 31 outcome+=str(i) 32 return outcome