- 博客(39)
- 收藏
- 关注
原创 45. 跳跃游戏 II
竟然没有超时,双重循环class Solution: def jump(self, nums: List[int]) -> int: dp = [float("inf")] * len(nums) dp[0] = 0 for i in range(len(nums)-1): for j in range(i+1,min(i+nums[i]+1,len(nums))): dp[j] = .
2021-03-31 18:24:10 71
原创 474. 一和零
多维背包,三维class Solution: def findMaxForm(self, strs: List[str], m: int, n: int) -> int: dp = [[[0] * (n+1) for _ in range(m+1)] for _ in range(len(strs)+1)] for k in range(1, len(strs)+1): count_1 = strs[k-1].count("1").
2021-03-31 18:07:23 47
原创 523. 连续的子数组和
class Solution: def checkSubarraySum(self, nums: List[int], k: int) -> bool: if k == 0: return True dic = {0:-1} sums = 0 for i in range(len(nums)): sums = (sums + nums[i]) % k if.
2021-03-31 16:45:59 53
原创 55. 跳跃游戏
class Solution: def canJump(self, nums: List[int]) -> bool: k = 0 for i in range(len(nums)): if i > k: return False k = max(k, nums[i] + i) return True
2021-03-31 16:32:59 59
原创 机器学习面试题(一)
准确率与精准率的区别降维的方法PCA推导LDA推导样本不平衡怎么办带权重的损失函数处理样本不平衡K-means如何选取K值ROC和AUCAuc体现出容忍样本倾斜的能力,只反应模型对正负样本排序能力的强弱,而其直观含以上是任意取一个正样本和负样本,正样本的得分大于负样本的概率。RMSE和MAE的区别bagging和boosting 的区别和联系...
2021-03-31 16:11:17 76
原创 变态跳台阶
# -*- coding:utf-8 -*-class Solution: def jumpFloorII(self, number): # write code here if number == 1: return 1 return 2*self.jumpFloorII(number-1)
2021-03-29 20:30:52 56
原创 377. 组合总和 Ⅳ
class Solution: def combinationSum4(self, nums: List[int], target: int) -> int: dp = [0] *(target + 1) dp[0] = 1 for i in range(1, target+1): for num in nums: if target - num >= 0: ..
2021-03-29 14:54:54 58
原创 39. 组合总和
class Solution: def combinationSum(self, candidates: List[int], target: int) -> List[List[int]]: res = [] def backtrack(position, sub_res): if sum(sub_res[:]) > target: return if sum(sub_re.
2021-03-29 14:53:36 64
原创 40. 组合总和 II
class Solution: def combinationSum2(self, candidates: List[int], target: int) -> List[List[int]]: res = [] candidates.sort() def backtrack(position, sub_res, ans): if ans > target: return .
2021-03-29 14:50:23 62
原创 1408. 数组中的字符串匹配
class Solution: def stringMatching(self, words: List[str]) -> List[str]: res = set() words.sort(key=lambda x:len(x)) for i in range(len(words)): for j in range(i+1, len(words)): if words[i] in wor.
2021-03-29 12:40:28 84
原创 数组中的第K个最大元素
class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: left = 0 length = len(nums) right = length - 1 def select_k_max(nums,low,high): index = partition(nums,low,high) if i.
2021-03-29 11:05:06 66
原创 打家劫舍
class Solution: def rob(self, nums: List[int]) -> int: if len(nums) <= 2: return max(nums) dp = [0] * len(nums) dp[0] = nums[0] dp[1] = nums[1] for i in range(2,len(nums)): dp[i] = .
2021-03-28 21:35:30 75
原创 713. 乘积小于K的子数组
滑动窗口class Solution: def numSubarrayProductLessThanK(self, nums: List[int], k: int) -> int: start = 0 sums = 1 ans = 0 for i in range(len(nums)): sums = sums * nums[i] while sums >.
2021-03-28 16:24:22 58
原创 76. 最小覆盖子串
class Solution: def minWindow(self, s: str, t: str) -> str: def dic_equal(dic1,dic2): for key in dic1: if dic2[key] < dic1[key]: return False return True t_dic = {} ..
2021-03-27 23:08:31 64
原创 牛客-地牢逃脱(BFS)
从给定起点(一定为’.’),按照给定的若干跳跃(可以跨过障碍,但不可以落在’x’上),到达任意一个’.'的最小步骤次数集合中,选择一个最大的!while True: try: n , m = map(int,input().split()) matrix = [] for i in range(n): te = list(map(str,input())) matrix.append(te) ..
2021-03-26 22:25:02 171
原创 python 一些技巧
进制转换format()函数可以去掉前缀,结果都是字符串。映射方式创建一个字典divmod()函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a//b, a%b)all()函数判定给定的可迭代 参数iterable中的所有元素是否都为True,否则返回False元素除了0,空值,None,False外都是True。空元祖,空列表返回的是Trueenumerate()函数用于将一个可遍历的数据对象(列表,元组,字符串)组合为一个索引,同时列出数据和数据的下标,一.
2021-03-26 20:07:39 114
原创 凉面
简述yolo V3原理;简述faster rcnn原理;yolo v3通过什么方法去避免双阶段,实现单阶段;NMS原理Triplet loss怎么去选择负样本;重排序(re-rank)原理yolo v3下采样的倍数yolo v3的损失函数yolo v3的输入固定吗?为什么是这些输入,有什么原因吗?...
2021-03-26 11:04:36 127
原创 字符串
class Solution: def lengthOfLongestSubstring(self, s: str) -> int: dic = {} # 存索引 res = 0 start = 0 end = 0 while end < len(s): if s[end] not in dic: dic[s[end]] = end .
2021-03-25 23:10:04 83
原创 82. 删除排序链表中的重复元素 II
# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: res = ListNode()..
2021-03-25 23:09:15 64
原创 换钱的最少货币
# 最少货币数# @param arr int整型一维数组 the array# @param aim int整型 the target# @return int整型#class Solution: def minMoney(self , arr , aim ): # write code here dp = [5001] * (aim+ 1) dp[0] = 0 for coin in arr: ..
2021-03-25 22:33:27 105
原创 两数之和 + 未排序数组中累加和为给定值的最长子数组
class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: dic = {} for i in range(len(nums)): dic[nums[i]] = i for i in range(len(nums)): if target-nums[i] in dic and i != dic[targ.
2021-03-25 21:28:40 73
原创 剑指 Offer 52. 两个链表的第一个公共节点
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode: A = headA .
2021-03-25 20:14:33 54
原创 树——递归思想
1.递归树要么是空树,要么有两个指针,每个指针指向一棵树。树是一种递归结构,很多树的问题可以使用递归来处理。class Solution: def maxDepth(self, root: TreeNode) -> int: if root == None: return 0 leftDepth = self.maxDepth(root.left) + 1 rightDepth = self.maxDepth(roo
2021-03-24 12:57:49 728 1
原创 位运算
基本原理移位运算例题class Solution: def singleNumber(self, nums: List[int]) -> int: tmp = 0 for i in range(len(nums)): tmp = tmp ^ nums[i] return tmpclass Solution: def missingNumber(self, nums: List[int]) -
2021-03-23 18:09:11 88
原创 质数
class Solution: def countPrimes(self, n: int) -> int: # 定义数组标记是否是质数 is_prime = [1] * n count = 0 for i in range(2, n): # 将质数的倍数标记为合数 if is_prime[i]: count += 1 .
2021-03-23 15:16:46 90
原创 拼凑硬币
是真的想不到,真的难Num = int(input())dp = {0: 0, 1: 1, 2: 2}def dfs(n): if n < 3: return dp[n] else: if n in dp: return dp[n] if n % 2 == 0: # n为偶数时,要么选取0个1,要么选取2个1. dp[n] = dfs(n >&
2021-03-22 21:50:24 178
原创 背包问题(动态规划)
0-1背包普通0-1背包贪心不合适不能优先放价值大的,比如:9 10, 5 6, 5,5 很明显6+5>10也不能优先放性价比高的,比如:9 18, 5, 9.5, 5,9.5 最大的性价比是2,但是放进去价值18<9.5+9.5=19分析比如最后一个物品是4 6,也就是重量是4,价值是6,那么最优解一定来自:前四个物品在容量为6的情况下最大值加上第五个物品的价值6,或者前四个物品在容量为10的情况下的价值,也就是 不要第五个物品,显然两者取个最大值。
2021-03-22 20:51:58 164
原创 geohash编码
n = int(input())res = ""def binary_search(left,right,res): while left < right: mid = int((left + right) / 2) if mid <= n: left = mid res = res + '1' else: right = mid re..
2021-03-20 12:10:12 105
原创 牛客 质数对
素数筛法求出质数n = int(input())ZHISHU = [2]for i in range(3, n): flag = True for j in ZHISHU: if i % j==0: #如果当前值可整除已筛出的素数中的任意值,则改变flag,结束循环 flag = False break if flag: #否则添加该数至素数列表 ZHISHU.append(i)# pr.
2021-03-20 11:32:17 106
原创 牛客 编码
s = input()def Count(s): res = 0 ans = 0 s_tmp = s if len(s) < 4: s_tmp = s_tmp + 'a' # 不够的补位'a' for i in range(len(s_tmp)): res = res * 25 + ord(s_tmp[i]) - ord('a') ans = ans + res return ans + .
2021-03-20 10:53:16 128
原创 完全平方数
初始化平方数列表,否则时间超出import numpy as npclass Solution: def numSquares(self, n: int) -> int: square_nums = [i ** 2 for i in range(1,int(np.sqrt(n))+1)] dp = [i for i in range(0,n+1)] for i in range(1,n+1): for square..
2021-03-19 22:20:40 108
原创 数组中的第K个最大元素
class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: # 快速排序 def quicksort(left,right): pivot = nums[left] while left < right: # 注意带上等号 # left 和right 不用加.
2021-03-18 23:08:53 56
原创 剑指 Offer 26. 树的子结构
分三种情况考虑,注意出口条件# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution: def isSubStructure(self, A: TreeNode, B: TreeNode) -> .
2021-03-18 22:08:01 51
原创 剑指 Offer 38. 字符串的排列
回溯模板+用一个visit去表示是否访问了某个位置+最后重复的用set()去重class Solution: def permutation(self, s: str) -> List[str]: l = len(s) res = [] used = [0] * l def backtrack(sub_s): if len(sub_s) == l: re.
2021-03-18 18:21:31 50
原创 XGBoost和lightGBM笔记
1.XGBoost模型假设一共K棵树,那么fk(xi)f_{k}(x_{i})fk(xi)表示第i个样本在第k棵树中落在叶子节点的权重。训练时候的目标函数3. 如何构造回归树要求的就是未知的fkf_kfk。4.贪心算法定义树的复杂度:用叶子的个数和叶子权重的平滑程度来描述模型的复杂度。5.求最优值6.求树的结构现在只要知道树的结构,就能得到一个该结构下的最好分数。用贪婪算法去确定树的结构。从树的深度为0开始,每一节点遍历所有的特征。对于某个特征,先按
2021-03-17 11:22:12 222
原创 第 k 个缺失的正整数
class Solution: def findKthPositive(self, arr: List[int], k: int) -> int: if arr[0] > k: return k l, r = 0, len(arr) while l < r: mid = (l + r) >> 1 x = arr[mid] if mi.
2021-03-14 21:58:06 82
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人