• 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
  • 相关阅读:
    Codeforces Round #362 (Div. 2) C
    poj1655 树重心
    poj1985 树直径
    Codeforces Round #403 (based on Technocup 2017 Finals)
    uva 10054 The necklacr
    bfs codeforces 754B Ilya and tic-tac-toe game
    矩阵快速幂专题
    CodeForces 863E Turn Off The TV 思维,扫描线
    CodeForces 803F Coprime Subsequences 莫比乌斯,容斥
    CodeForces 803C Maximal GCD 思维
  • 原文地址:https://www.cnblogs.com/codeinpy/p/9361037.html
Copyright © 2020-2023  润新知