zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/codeinpy/p/9361037.html
Copyright © 2011-2022 走看看