'''
1.买卖股票的最佳时机给定一个数组,它的第?i?个元素是一支给定股票第?i?天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。
注意你不能在买入股票前卖出股票。(5分)
要求:
1.输入: [7,1,5,3,6,4]
2.输出: 5
3.解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
4.注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。
'''
class Solution:
def maxProfit(self, prices): max_profit1 = 0
if len(prices) <= 1:
return max_profit1 min_profit = prices[0]
max_profit2 = 0
for index in range(len(prices)):
if prices[index] <= min_profit:
min_profit = prices[index]
elif prices[index] - min_profit > max_profit2:
max_profit2 = prices[index] - min_profit
return max_profit2 '''
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
'''
class Solution1:
def moveZeroes(self, nums):
i = j = 0
for i in range(len(nums)):
if nums[i] != 0:
nums[j] , nums[i]= nums[i] , nums[j]
j += 1 '''
抓了a,b,c,d四名犯罪嫌疑人,其中有一人是小偷,审讯中:
?a说 我不是小偷;
?b说 c是小偷;
?c说 小偷肯定是d;
?d说 c胡说!
其中有三个人说的是实话,一个人说的是假话,请编程推断谁是小偷(用穷举法和逻辑表达式)
''' for i in range(4):
i += 1
if 3 == ((i != 1) + (i == 3) + (i == 4) + (i != 4)):
# 利用ascii码表输出
str = chr(96 + i) + "是小偷!"
print(str)
请手写插入查找算法,并且用注释写出思路,并且指出时间复杂度 def charu(nums,order = 1):
#第一个数不动,从第二个数开始比较
for i in range(1,len(nums)):
j=i-1
tmp = nums[i] #记录本次待比较的词语
while j >= 0:
if tmp < nums[j]:
nums[j+1] = nums[j]
nums[j] = tmp
j = j-1
else:
break
if order == 1:
return nums
else:
return nums[::-1] 有1、2、3、4、5、6、7、8、9、10个数字,能组成多少个互不相同且无重复数字的五位数?都是多少? a = [1,2,3,4,5,6,7,8,9,10]
def test2(a):
i = 0
for a in range(1, 5):
for b in range(1, 5):
for c in range(1, 5):
if a != b != c:
A = (a * 100 + b * 10 + c)
i += 1
print(A)
print("一共有" + str(i) + "种排列") 2. 二分查找 1.def bin_search(data_set,val):
2. low = 0
3. high = len(data_set)-1
4. while low <= high:
5. mid = (low+high)//2 # 整除2
6. if data_set[mid] == val: # 如果等于要查找的值,返回下标
7. return mid
8. elif data_set[mid] < val: # 如果列表中间的值小于需要的值
9. low = mid + 1 # 则把最小的下标改成mid+1
10. else: # 如果列表中间的值大于需要的值
11. high = mid - 1 # 则把最大的下标改成mid-1
12. return # 如果没找到return空
zhengze_phone=r'1[\d]{10}'
r'[\w]+@[\w]+\.[\w]{2,3}'

代码.py

python:面试算法题的更多相关文章

  1. Python面试真题答案或案例

    Python面试真题答案或案例如下: 请等待. #coding=utf-8 #1.一行代码实现1--100之和 print(sum(range(1,101))) #2.如何在一个函数内部修改全局变量 ...

  2. python经典面试算法题1.4:如何对链表进行重新排序

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.4 对链表按照如下要求重新排序 [微软笔试题] 难度系数: ...

  3. python经典面试算法题1.3:如何计算两个单链表所代表的数之和

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [华为笔试题] 难度系数:⭐⭐⭐ ...

  4. python经典面试算法题1.2:如何从无序链表中移除重复项

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [蚂蚁金服面试题] 难度系数:⭐⭐ ...

  5. python经典面试算法题4.1:如何找出数组中唯一的重复元素

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [百度面试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐ 题目描述 ...

  6. python经典面试算法题1.1:如何实现链表的逆序

    本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.1 如何实现链表的逆序 [腾讯笔试题] 难度系数:⭐⭐⭐ ...

  7. 数百道BAT等大厂最新Python面试真题,学到你手软!

    春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法.提升 Python 编程能力,总是大有裨益的.今天,小编发现了一份好资源:Python 实现的面试题集锦! ...

  8. python在算法题中判断输入结束(EOF)

    有些算法题是这样要求的,一行输入一行数据,然后没有规定我要输入多少行,你要自行判断文件结束EOF,否则是会runtime error的,因为oj内部都是用文件来进行读写的. 例如a+b,每一行输入a ...

  9. 合并K个有序数组(链表)【字节跳动面试算法题】

    本题是本人字节跳动一面考的算法题原题是有序数组,一时没想到怎么解决数组的问题,但是如果给的是有序链表数组,则可以用下面的方法解决 可以利用最小堆完成,时间复杂度是O(nklogk),具体过程如下: 创 ...

随机推荐

  1. 二分-G - 4 Values whose Sum is 0

    G - 4 Values whose Sum is 0 The SUM problem can be formulated as follows: given four lists A, B, C, ...

  2. Java单体应用 - 架构模式 - 02.MVC架构

    原文地址:http://www.work100.net/training/monolithic-architecture-mvc.html 更多教程:光束云 - 免费课程 MVC架构 序号 文内章节 ...

  3. promise是怎么来的?

    一.promise是如何产生的 1. promise并不是一个新的功能,它是一个类,它只是对 异步编程的代码进行整合,它是解决异步(层层嵌套的这种关系),让你的代码看起来更简洁. 2. 在 es6 中 ...

  4. Java TreeSet集合 比较器排序Comparator的使用

    比较器排序Comparator的使用 存储学生对象,并遍历,创建TreeSet集合使用带参构造方法 要求,按照学生年龄从小到大排序,如果年龄相同,则按照姓名的字母循序排序 结论 用TreeSet集合存 ...

  5. C++——二维数组和对象数组

    6.3 二维数组的声明和引用 声明:数据类型 标识符[常量表达式1][常量表达式2]:int a[3][4]; 表示a为整型二维数组,其中第一维有3个下标(0~2),第二维有4个下标(0~3),数组元 ...

  6. RemoteViews 整理

    前言 RemoteViews表面意思就是远程的view,这个就很难理解了,远程的view.但是英语是抽象,remote本身就是偏僻的,偏远的意思. 所以remoteViews 就是地方view,天高皇 ...

  7. ConsoleWindow中的双击日志定位

    很多项目都有自己重写Debug.Log的习惯,难免会遇到在Unity的Console窗口中双击日志, 但是没法直接跳转到想要看到的代码那一行的时候,解决办法有以下2种: 将自己封装的日志类制作成DLL ...

  8. mybatis-plus - 初识

    一. 集成 pom.xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid& ...

  9. 数据库too many connections 解决方法

    问题:网站后台突然报错了,显示“too many connections........”这是咋回事? 解决: 先罗列几个有用的操作: ① mysql -u root -p  回车输入密码进入mysq ...

  10. 题解【洛谷P3951】[NOIP2017]小凯的疑惑

    题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想知道在无法准确支付的物品中,最贵的 ...