
leetcode
一只小白在路上
吾生也有涯,而知也无涯,
展开
-
H指数 -275
给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照 升序排列 。编写一个方法,计算出研究者的 h 指数。h 指数的定义: “h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数不多于 h 次。)"class Solution: def hIndex(self, citations: List[int]) -> int:原创 2020-10-26 17:47:51 · 249 阅读 · 1 评论 -
旋转出最小的数字
class Solution: def minArray(self, numbers: List[int]) -> int: temp = numbers[0] for i in range(len(numbers)): if temp > numbers[i]: temp = numbers[i] return temp原创 2020-09-30 15:50:54 · 66 阅读 · 0 评论 -
求1-n的和
1、递归2、迭代3、逻辑递归法class Solution: def sumNums(self, n: int) -> int: if n < 1: return 0 return n + self.sumNums(n - 1)s = Solution()print(s.sumNums(5))def sumNums(n): if n == 1: return 1 n += sumNums(n - 1原创 2020-09-30 13:19:28 · 335 阅读 · 0 评论 -
从尾到头打印链表
class Node(): def __init__(self,data): self.data = data self.next = Noneclass stack(): def __init__(self): self.slist = [] def add(self,data): self.slist.append(data) def popdata(self): return self.原创 2020-09-30 09:22:29 · 99 阅读 · 0 评论 -
链表中倒数第k个结点
#思路:遍历整个链表,把链表中的元素放在列表中,索引第n-k个元素class Node(): def __init__(self,data): self.data = data self.next = Noneclass singleList(): def __init__(self): self._head = None # 尾插法建立列表 def append(self,data): if self._原创 2020-09-29 09:40:18 · 72 阅读 · 0 评论 -
二维元素中元素的查找
# 从右上角开始查找def func(target,matrix): rows = len(matrix) cols = len(matrix[0]) x = 0 y = cols - 1 while x < rows and y >= 0: if target == matrix[x][y]: return True elif target < matrix[x][y]: .原创 2020-09-28 22:54:16 · 176 阅读 · 0 评论 -
查找k个最小的数
使用冒泡排序def find_num(nums,k): for i in range(len(nums)): for j in range(len(nums)-1): if nums[j] >nums[j+1]: nums[j],nums[j+1]=nums[j+1],nums[j] return nums[:k]nums = [2,6,3,1]print(find_num(nums, 2))...原创 2020-09-28 22:14:44 · 157 阅读 · 0 评论 -
查找重复的数字
from typing import Listclass Solution: def findRepeatNumber1(self, nums: List[int]) -> int: """ """ dic = set() for val in nums: if val in dic: print(val) dic.add(val) # retur原创 2020-09-28 22:02:26 · 162 阅读 · 0 评论 -
和为s的正整数序列
from typing import Listdef findContinuousSequence(target: int) -> List[List[int]]: i = 1 # 滑动窗口的左边界 j = 1 # 滑动窗口的右边界 sum = 0 # 滑动窗口中数字的和 res = [] while i <= target // 2: if sum < target: # 右边界向右移动原创 2020-09-28 21:37:21 · 147 阅读 · 0 评论 -
四边形面积
n = int(input("请输入一个整数"))a = input().split(" ")length = [int(a[i]) for i in range(n)]dict1 = {}for i in range(n): dict1[length[i]] = length .count(length[i])a=sorted(dict1.items(),key=lambda item:item[0],reverse= True)print(a)tem=[]for j in原创 2020-09-26 10:39:20 · 269 阅读 · 0 评论 -
全排列
from typing import Listclass Solution: def permuteUnique(self, nums: List[int]) -> List[List[int]]: # 第一次调用i= 0,二次调用i =1 三次调用i = 2 def dfs(nums, size, depth, path, used, res): if depth == size: res.append(path.原创 2020-09-25 16:26:23 · 90 阅读 · 0 评论 -
算法day2
题目 合并两个有序列表def merge_list(list1,list2): result = [] while list1 and list2: if list1[0] <= list2[0]: result.append(list1[0]) del list1[0] else: result.append(list2[0]) del list2[0原创 2020-09-16 09:20:55 · 100 阅读 · 0 评论 -
算法Day1
冒泡排序def bubble_sort(our_list): n = len(our_list) sortBorder = n - 1 # 无序数列边界 for i in range(n): for j in range(0,sortBorder): # 索引 后边有j+1 if our_list[j] > our_list[j+1]: our_list[j],our_list[j+1] =原创 2020-09-14 13:18:20 · 177 阅读 · 0 评论