剑指offer 算法题 python版 更新中
来源:互联网 发布:金数据 - 登录 编辑:程序博客网 时间:2024/06/08 19:40
1.二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
# -*- coding:utf-8 -*-class Solution: # array 二维列表 def Find(self, target, array): # write code here n = len(array) for i in xrange(n): if target in array[i]: return "true" else: continues = Solution()listcase = input()array = listcase[1]target = listcase[0]print s.Find(target, array)
测试用例: 7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]] 对应输出应该为:
true
把矩阵看作数组中包含数组,用input()接收2输入,然后解开target和array传给Find,Find里面判断数组长度,然后以长度的范围为下标,遍历出每个数组,再判断target是否在数组里面,在的话输出true
2.O(1)时间复杂度实现入栈出栈获得栈中最小元素最大元素
#定义栈结构,根据栈的后进先出特性,增加辅助栈,来存储当前状态下数据栈中的最小、最大元素。class Stack(object): def __init__(self): self.data = [] self.minValue = [] self.maxValue = [] def push(self,data): self.data.append(data) if len(self.minValue)==0: self.minValue.append(data) else: if data <= self.minValue[-1]: self.minValue.append(data) if len(self.maxValue)==0: self.maxValue.append(data) else: if data>=self.maxValue[-1]: self.maxValue.append(data) def pop(self): if len(self.data)==0: return None else: temp = self.data.pop() if temp == self.minValue[-1]: self.minValue.pop() if temp == self.maxValue[-1]: self.maxValue.pop() return temp def min(self): if len(self.data)==0: return None else: return self.minValue[-1] def max(self): if len(self.data)==0: return None else: return self.maxValue[-1] def show(self): print("stack data") for data in self.data: print(data) print("min",self.min()) print("max",self.max())if __name__ == "__main__": s = Stack() s.push(2) s.push(1) s.show() s.push(4) s.push(3) s.push(2) s.show() s.pop() s.show() s.pop() s.show()
3.判断闰年
#判断闰年 整百年能被400整除的是闰年 非整百年能被4整除的为闰年year = int(input(("请输入年份:")))if (year%4) == 0: if (year%100) == 0: if (year%400) == 0: print(("{}年 是闰年").format(year)) else: print(("{}年 是平年").format(year)) else: print(("{}年 是闰年").format(year))else: print(("{}年 是平年").format(year))
阅读全文
0 0
- 剑指offer 算法题 python版 更新中
- Python基础算法/剑指offer
- 剑指offer练习题实现(java版,持续更新中)
- [剑指offer]之python实现总结[持续更新中]
- 剑指Offer读书笔记(持续更新中)
- 《剑指offer》算法题
- 剑指offer 算法2 替换空格(python)
- 【刷题】剑指Offer 66 题 PYTHON版
- 剑指offer编程题目汇总(更新中。。)
- 剑指Offer 读书笔记 (Java实现)(更新中)
- 剑指offer 算法1 二维数组中的查找(python)
- 剑指offer--python
- 剑指Offer面试算法题Java实现
- 算法练习 剑指offer第5题
- 剑指offer算法题之替换空格
- 剑指offer-算法整理
- 剑指Offer算法精炼
- 算法系列-----剑指offer
- 安卓Socket使用之服务器端
- 机器学习基础知识
- JSP技术
- 7-4 求矩阵各行元素之和
- 并查集
- 剑指offer 算法题 python版 更新中
- 前端分享插件
- 笔试题积累
- 欢迎使用CSDN-markdown编辑器
- 【PAT】【Advanced Level】1070. Mooncake (25)
- tcl语法
- java之String不可变思考
- SpringMVC(一)HelloWorld
- toolbar 总结和踩过的坑 , 为toolbar设置字体