python:面试算法题
'''
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:面试算法题的更多相关文章
- Python面试真题答案或案例
Python面试真题答案或案例如下: 请等待. #coding=utf-8 #1.一行代码实现1--100之和 print(sum(range(1,101))) #2.如何在一个函数内部修改全局变量 ...
- python经典面试算法题1.4:如何对链表进行重新排序
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.4 对链表按照如下要求重新排序 [微软笔试题] 难度系数: ...
- python经典面试算法题1.3:如何计算两个单链表所代表的数之和
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [华为笔试题] 难度系数:⭐⭐⭐ ...
- python经典面试算法题1.2:如何从无序链表中移除重复项
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.2 如何实现链表的逆序 [蚂蚁金服面试题] 难度系数:⭐⭐ ...
- python经典面试算法题4.1:如何找出数组中唯一的重复元素
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. [百度面试题] 难度系数:⭐⭐⭐ 考察频率:⭐⭐⭐⭐ 题目描述 ...
- python经典面试算法题1.1:如何实现链表的逆序
本题目摘自<Python程序员面试算法宝典>,我会每天做一道这本书上的题目,并分享出来,统一放在我博客内,收集在一个分类中. 1.1 如何实现链表的逆序 [腾讯笔试题] 难度系数:⭐⭐⭐ ...
- 数百道BAT等大厂最新Python面试真题,学到你手软!
春招临近,无论是要找工作的准毕业生,还是身在职场想要提升自己的程序员,提升自己的算法内功心法.提升 Python 编程能力,总是大有裨益的.今天,小编发现了一份好资源:Python 实现的面试题集锦! ...
- python在算法题中判断输入结束(EOF)
有些算法题是这样要求的,一行输入一行数据,然后没有规定我要输入多少行,你要自行判断文件结束EOF,否则是会runtime error的,因为oj内部都是用文件来进行读写的. 例如a+b,每一行输入a ...
- 合并K个有序数组(链表)【字节跳动面试算法题】
本题是本人字节跳动一面考的算法题原题是有序数组,一时没想到怎么解决数组的问题,但是如果给的是有序链表数组,则可以用下面的方法解决 可以利用最小堆完成,时间复杂度是O(nklogk),具体过程如下: 创 ...
随机推荐
- HashMap源码(一)
本文主要是从学习的角度看HashMap源码 HashMap的数据结构 HashMap是一个数组+链表的结构(链表散列),每个节点在HashMap中以一个Node存在: HashMap的初始化 publ ...
- python特性
# for用法 for i in range(0,100,2): print(i) n = 0 # while用法 while n < 100: print(n) n += 2 else: pr ...
- SpringMVC处理中文乱码
SpringMVC自带过滤器 添加至web.xml文件 <filter> <filter-name>encoding</filter-name> <filte ...
- axios的基本用法与并发请求
一.axios的基本用法 <router-link to="" class="a1" @click.native="logins"&g ...
- AcWing 892. 台阶-Nim游戏
#include<iostream> using namespace std; int n; int main() { cin>>n; ; ; i<=n; i++) { ...
- day22 定时任务
检查软件是否安装 cronie [root@oldboyedu ~]# rpm -qa cronie cronie-1.4.11-19.el7.x86_64 [root@oldboyedu ~]# r ...
- 题解 洛谷 P4145 【上帝造题的七分钟2 / 花神游历各国】
题目 上帝造题的七分钟2 / 花神游历各国 题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. ...
- 1、spring与springmvc父子容器
转载于http://www.tianshouzhi.com/api/tutorials/spring 1.0 spring与springmvc父子容器 1.spring和springmvc父子容器概念 ...
- bzoj3744: Gty的妹子序列 (BIT && 分块)
强制在线的区间询问逆序对数 如果不是强制在线 就是可以用莫队乱搞啦 强制在线的话 用f[i][j]记录第i块到第j个点之间的逆序对数 用s[i][j]记录前i块中小于等于j的数字个数 离散化一下 BI ...
- 4.用springboot写的第一个程序--helloworld
这是我自己在controller层建的hello类 运行,选画方框的那个.我查了一晚上,可算知道为啥运行不了了. 然后再浏览器输入网址就ok了 为了大力!好好学习!