zoukankan      html  css  js  c++  java
  • python:面试算法题

      1 '''
      2 1.买卖股票的最佳时机给定一个数组,它的第?i?个元素是一支给定股票第?i?天的价格。
      3 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
      4 注意你不能在买入股票前卖出股票。(5分)
      5      要求:
      6     1.输入: [7,1,5,3,6,4]
      7     2.输出: 5
      8     3.解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
      9     4.注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
     10 '''
     11 class Solution:
     12     def maxProfit(self, prices):
     13 
     14         max_profit1 = 0
     15         if len(prices) <= 1:
     16             return max_profit1
     17 
     18         min_profit = prices[0]
     19         max_profit2 = 0
     20         for index in range(len(prices)):
     21             if prices[index] <= min_profit:
     22                 min_profit = prices[index]
     23             elif prices[index] - min_profit > max_profit2:
     24                 max_profit2 = prices[index] - min_profit
     25         return max_profit2
     26 
     27 '''
     28 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
     29 Input:  [0,1,0,3,12]
     30 Output:  [1,3,12,0,0]
     31 '''
     32 class Solution1:
     33     def moveZeroes(self, nums):
     34         i = j = 0
     35         for i in range(len(nums)):
     36             if nums[i] != 0:
     37                 nums[j] , nums[i]= nums[i] , nums[j]
     38                 j += 1
     39 
     40 
     41 '''
     42 抓了a,b,c,d四名犯罪嫌疑人,其中有一人是小偷,审讯中:
     43 ?a说  我不是小偷;
     44 ?b说  c是小偷;
     45 ?c说  小偷肯定是d;
     46 ?d说  c胡说!
     47 其中有三个人说的是实话,一个人说的是假话,请编程推断谁是小偷(用穷举法和逻辑表达式)
     48 '''
     49 
     50 for i in range(4):
     51     i += 1
     52     if 3 == ((i != 1) + (i == 3) + (i == 4) + (i != 4)):
     53         # 利用ascii码表输出
     54         str = chr(96 + i) + "是小偷!"
     55         print(str)
     56 请手写插入查找算法,并且用注释写出思路,并且指出时间复杂度
     57 
     58 
     59 def charu(nums,order = 1):
     60     #第一个数不动,从第二个数开始比较
     61     for i in range(1,len(nums)):
     62         j=i-1
     63         tmp = nums[i] #记录本次待比较的词语
     64         while j >= 0:
     65             if tmp < nums[j]:
     66                 nums[j+1] = nums[j]
     67                 nums[j] = tmp
     68                 j = j-1
     69             else:
     70                 break
     71     if order == 1:
     72         return nums
     73     else:
     74         return nums[::-1]
     75 
     76 
     77 
     78 有1、2、3、4、5、6、7、8、9、10个数字,能组成多少个互不相同且无重复数字的五位数?都是多少?
     79 
     80 a = [1,2,3,4,5,6,7,8,9,10]
     81 def test2(a):
     82     i = 0
     83     for a in range(1, 5):
     84         for b in range(1, 5):
     85             for c in range(1, 5):
     86                 if a != b != c:
     87                     A = (a * 100 + b * 10 + c)
     88                     i += 1
     89                     print(A)
     90     print("一共有" + str(i) + "种排列")
     91 
     92 
     93 2.  二分查找
     94 
     95 1.def bin_search(data_set,val):
     96 2.    low = 0
     97 3.    high = len(data_set)-1
     98 4.    while low <= high:
     99 5.        mid = (low+high)//2    # 整除2
    100 6.        if data_set[mid] == val:    # 如果等于要查找的值,返回下标
    101 7.            return mid
    102 8.        elif data_set[mid] < val:   # 如果列表中间的值小于需要的值
    103 9.            low = mid + 1     # 则把最小的下标改成mid+1
    104 10.        else:    # 如果列表中间的值大于需要的值
    105 11.            high = mid - 1     # 则把最大的下标改成mid-1
    106 12.    return      # 如果没找到return空
    107 zhengze_phone=r'1[d]{10}'
    108 r'[w]+@[w]+.[w]{2,3}'
    代码.py
  • 相关阅读:
    PHP 大小写转换、首字母大写、每个单词首字母大写转换相关函数
    【论文学习4】BiSample: Bidirectional Sampling for Handling Missing Data with Local Differential Privacy
    【论文学习3】Local Differential Privacy for Deep Learning
    【论文学习2】 Differential Privacy Reinforcement Learning
    深度学习中的优化算法
    Spatial crowdsourcing
    “pip install tensorflow ”出现错误
    python或pip'不是内部或外部命令”
    pip install torch出现错误
    打不开gitHub的解决方法
  • 原文地址:https://www.cnblogs.com/qq128/p/12107075.html
Copyright © 2011-2022 走看看