每日五问(1)
来源:互联网 发布:js实现excel上传文件 编辑:程序博客网 时间:2024/05/21 06:30
【NO1】 leetcode第一题 Two Sum
给定一个数组,一个目标值。假定刚好有两个数字加起来为目标值,请返回这两个下标(e.g. list=[1,2,3,0], target=4,返回 [0, 2])
思路:
def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ #拷贝数组 numlist = nums[:] #数组排序 numlist.sort() #核心部分,分别设置左右两个指针,若此时指针所指数字和超过target,则右指针向左移,找更小的数字,同理若超过target,则左指针右移,找更大的数字,直至找到目标值 l = 0 r = len(nums) - 1 while (numlist[l]+numlist[r]) != target: while (numlist[l]+numlist[r]) < target: l = l + 1 while (numlist[l]+numlist[r]) > target: r = r - 1 #找到相应数字在原数组中的下标志 i = nums.index(numlist[l]) j = nums.index(numlist[r]) #应对两个数字刚好相等的情况(e.g. [0,1,2,0], target=0 应返回[0,3], 若不做检查 则会返回[0,0]是错误的) if (j == i): j = nums.index(numlist[l], i+1) return [i, j]
【NO2】读代码段,判断输出
def multi(): return [lambda x: x * y for y in range(3)]for m in multi(): pirnt (m(2))#print 444
【NO3】读代码段,判断输出
def arg(val, lst=[]): lst.append(val) return lstprint (arg(10))print (arg(20))#print[10][10, 20]
【NO4】读代码段,判断输出
lst = [[]] * 3 #[[], [], []]lst[0].append(2)print (lst) #[[2], [2], [2]]
【NO5】快速排序
快排思想 {1, 8, 7, 55, 0, 11, 2}->{0, 8, 7, 55, 1, 11, 2}->{0, 1, 7, 55, 8, 11, 2}->{0, 1} | {7, 55, 8, 11, 2}-> | {2, 55, 8, 11, 7}-> | {2, 7, 8, 11, 55}-> | {2, 7} {8, 11, 55}-> |{8} {11, 55}
思想就是单次排序后,使数组分为两部分,左半部分均小于flag值,右半部分均大于flag值,然后两半部分再迭代进行单次排序直接上实现代码:#单次排序def quick(lst, left, right): flag = lst[left] while (left < right): while (lst[right] > flag): right = right - 1 if (left < right): tmp = lst[right] lst[right] = lst[left] lst[left] = tmp left = left + 1 while (lst[left] < flag): left = left + 1 if (left < right): tmp = lst[left] lst[left] = lst[right] lst[right] = tmp right = right - 1 return left#递归部分def quickSort(lst, left, right): if (left >= right): return else: mid = quick(lst, left, right) quickSort(lst, left, mid) quickSort(lst, mid+1, right)
0 0
- 每日五问(1)
- 每日一题(五)
- 每日五题(随记)
- 每日五题(struts2)
- 每日五题(线程)
- Linux每日学习(五)
- 每日十道面试题(五)
- 每日英语阅读(五)
- 每日一点Js(五)
- Python每日小结(五)
- 知足常乐--每日十问
- 每日三问
- 每日一问
- 开发者每日几问
- 每日一问
- (每日一问)互联网行业是如何盈利的?
- ORACLE问题,每天10问(五)
- ORACLE问题,每天10问(五)
- day4 CodeForces 27E Number With The Given Amount Of Divisors
- JAVA服务器端接收数据问题
- HTML5的选择符及元素
- IAR FOR STM8使用问题总结
- 【HNOI 2012】永无乡 并查集+主席树
- 每日五问(1)
- 分布式索搜elasticsearch几个概念分析
- HTML4 和 HTML5 的10个关键区别
- day4 POJ 1035 Spell checker
- 视图对性能的影响
- C# winform 中MessageBox用法大全(附效果图)
- linux 进程间通信的几种方式
- HDU 5730 2016多校Contest 1 G题【CDQ分治和FFT模板】
- 语义化标签