![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
题库
J.hao..
这个作者很懒,什么都没留下…
展开
-
python栈的最小值
class MinStack: def __init__(self): """ initialize your data structure here. """ self.min_stack=list() #辅助栈,用来存每一次进栈时的最小值,最小值就辅助栈,比辅助栈的值大是不需要进 self.stack=list() #栈 def push(self, x: int) -> None原创 2021-11-30 11:37:59 · 537 阅读 · 0 评论 -
python反转链表
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def reverseList(self, head: ListNode) -> ListNode: cur, pre = head, None while cu原创 2021-11-02 19:02:41 · 91 阅读 · 0 评论 -
python两个栈实现一个队列
#两个栈实现一个队列:只使用一个栈 stack1 当作队列,另一个栈 stack2 用来辅助操作。#要想将新加入的元素出现栈底,需要先将 stack1 的元素转移到 stack2,将元素入栈 stack1,最后将 stack2 的元素全部回到 stack1。class cQueue: def __init__(self): self.A,self.B=[],[] def appendTail(self,value): self.A.append(value原创 2021-11-01 15:00:20 · 291 阅读 · 0 评论 -
python冒泡排序
#冒泡排序def bubblesort(lists): n=len(lists) for i in range(n-1): #每一轮比较 for j in range(0,n-i-1): #经过每轮后 比较的次数会减少 if lists[j]>lists[j+1]: lists[j],lists[j+1]=lists[j+1],lists[j] return listsif __name__=="原创 2021-09-19 13:14:29 · 80 阅读 · 0 评论 -
python快速排序
#快速排序def quicksort(lists,i,j): while i>j: return list proivt=lists[i] low=i high=j while i<j: while i<j and lists[j]>=proivt: j-=1 lists[i]=lists[j] while i<j and lists[i]<=原创 2021-09-19 10:56:55 · 82 阅读 · 0 评论 -
python:有效括号
力扣:有效的括号#方法:栈:遇见与之对应的括号,则pop出栈。哈希表:将括号用哈希表键值对存储#Python List pop()方法:该方法返回从列表中移除的元素对象。class Solution: def isValid(self, s: str) -> bool: if len(s) % 2 == 1: #取余,当括号不为偶数时,证明有一个没有与之对应的括号 return False pairs = {原创 2021-08-14 12:30:30 · 135 阅读 · 0 评论 -
python:链表中倒数第k个节点
力扣:链表中倒数第k个节点方法:快慢指针法# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def getKthFromEnd(self, head: ListNode, k: int) -> ListNode: fast=head slow=head for i i原创 2021-08-07 11:56:54 · 117 阅读 · 0 评论 -
python:调整数组顺序使奇数位于偶数前面
力扣:调整数组顺序使奇数位于偶数前面class Solution: def exchange(self, nums: List[int]) -> List[int]: #方法一:双指针法 left,right=0,len(nums)-1 #left在最前,right在最后 while left<=right: #left指针遇见奇数继续下一个,遇见偶数停 while (left<=r原创 2021-08-06 22:53:25 · 859 阅读 · 0 评论 -
python:二进制中1的个数
力扣:二进制中1的个数class Solution: def hammingWeight(self, n: int) -> int: res=0 #计数器为0 while n!=0: #n不为0,则两个对应位不同时 n=n & (n-1) #按位与运算符:参与运算的两个二进制值,如果两个相应位都为1,则该位的结果为1,否则为0。该n & (n-1)是让每一次循环n的二进制最后一位1变位0 r原创 2021-08-04 22:27:11 · 466 阅读 · 0 评论 -
python:剪绳子
力扣算法题:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。动态规划:class Solution: def cuttingRope(self, n: int) -> int: #动态规划 d原创 2021-08-03 22:53:46 · 284 阅读 · 0 评论 -
python:矩阵中的路径
class Solution: def exit(self,board:List[List[str],word:str)->bool: m=len(board) #矩阵的长度 n=len(board[0]) if board else 0 #矩阵的宽度 def dfs(k,i,j): #k是当前的哪一个字符,i j表示当前矩阵的哪一个格子 if not 0<=i<m or not 0<=j<n or work[k]!=board[i][j]: #不在矩阵的原创 2021-07-31 17:01:53 · 334 阅读 · 0 评论 -
python:Excel表序列号
class solution(object): def titleToNumber(self, s: str) -> int: # 理解为26进制的转化 # 初始化结果 ans = 0,遍历时将每个字母与 A 做减法,因为 A 表示 1,所以减法后需要每个数加 1,计算其代表的数值 num = 字母 - ‘A’ + 1. 因为有 26 个字母,所以相当于 26 进制,每 26 个数则向前进一位. 所以每遍历一位则ans = ans * 26 + num. 以 Z原创 2021-07-31 15:01:56 · 332 阅读 · 0 评论