'''
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. 四、CentOS 7安装Oracle JDK

    CentOS 7安装Oracle JDK,查看Linux是否自带的JDK,如有openJDK,则卸载  CentOS7.1 JDK安装 1.卸载自带OPENJDK    用 java -version ...

  2. centos添加用户并赋予 root管理员权限

     centos添加用户并赋予 root管理员权限 用centos时,root用户一般都是超级管理员使用的,一般不轻易给别人,但是有时候同事安装软件时需要root账号,又不得不给,只能重新建一个用户,并 ...

  3. 算法竞赛入门经典第二版 蛇形填数 P40

    #include<bits/stdc++.h> using namespace std; #define maxn 20 int a[maxn][maxn]; int main(){ ; ...

  4. Element-ui组件库Table表格导出Excel表格

    安装npm install --save xlsx file-saver 两个插件的详细地址在下面 https://github.com/SheetJS/js-xlsxhttps://github.c ...

  5. Django - installing mysqlclient error: mysqlclient 1.3.13 or newer is required; you have 0.9.3

    环境 Deepin Linux 15.11 Django 2.2 pymysql0.9.3 原因 因为用pymysql替换了默认的mysqlclient,Django官方推荐的数据库API drive ...

  6. 文件分割合并DOS版

    这个从163邮箱里翻出来的程序,2004年的修改日期,放这另存一下. 当时拿了一本C++的书来学,学了一阵就琢磨着做一个东东,然后就想起一个以前印象深刻的软件,叫做笨笨狗分割器. 当时主要还是靠3.5 ...

  7. LOJ138 类欧几里得算法

    类欧几里得算法 给出 \(T\) 组询问,每组用 \(n, a, b, c, k_1, k_2\) 来描述.对于每组询问,请你求出 \[ \sum_{x = 0} ^ {n} x ^ {k_1} {\ ...

  8. AcWing 895. 最长上升子序列

    //设上升序列的最后一个数字为第i个,那么就以第i-1个位分类标准, //i-1可以没有,也可以是在数组中下标为1,下标为2 //一直到下标为i-1的数字 #include <iostream& ...

  9. mysql 实践(例题)

    MySQL安装见本博 安装成功后,开始菜单中找到 “MySQL 8.0 Command Line Client” 进行启动(启动后,可直接输入MySQL密码) 1. create database 数 ...

  10. Linux - 查看静态硬件信息

    概述 查看系统的 信息 一些 相对静态 的信息 背景 一直想写, 但是没来得及整理 每次要用的时候, 都慌里慌张的到处找 这次把他记下来 环境 CentOS 7 下面有些方法, 可能是 centos ...