- 博客(11)
- 收藏
- 关注
原创 斯坦福cs231n——assignment1_KNN
全称K-最近邻算法,找到最近的k个邻居,在选取到的k个样本中选取出最近的且占比最高的类别作为预测类别,因此可以看做一种,依赖少数服从多数的原则,属于局部近似。优点:1、简单训练快;2、据周围邻近样本的标签进行分类的,所以适合于样本类别交叉或重叠较多的情况;3、对异常值不敏感;缺点:1、计算量大预测慢;2、无法解决高维问题;3、当不同类别的样本数目差异较大时,数目较大的那一类别对KNN判别结果影响较大,因此可能产生误判;4、不存在概率评分,仅根据样本标签判别;
2023-08-27 08:53:50 245 1
原创 刷题笔记——表达式求值
描述 请写一个整数计算器,支持加减乘三种运算和括号。 数据范围:0\le |s| \le 1000≤∣s∣≤100,保证计算结果始终在整型范围内 要求:空间复杂度: O(n)O(n),时间复杂度 O(n)O(n) 示例1 输入:"1+2" 返回值:3 示例2 输入:"(2*(3-4))*5" 返回值:-10 示例3 输入:"3+2*3*4-1" 返回值:26 1、当前指针为index,碰到左括号时,递归执行index+1到end-1 1)左括号个数brac...
2022-05-27 10:40:31 194
原创 刷题笔记——兑换零钱(一)
描述 给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个aim,代表要找的钱数,求组成aim的最少货币数。 如果无解,请返回-1. 数据范围:数组大小满足 0 \le n \le 100000≤n≤10000 , 数组中每个数字都满足 0 < val \le 100000<val≤10000,0 \le aim \le 50000≤aim≤5000 要求:时间复杂度 O(n \times aim)O(n×aim) ,
2022-05-23 19:49:54 327
原创 刷题笔记——装箱问题
描述 有一个箱子容量为V(正整数,0 ≤ V ≤ 20000),同时有n个物品(0<n ≤ 30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。 输入描述: 1个整数,表示箱子容量 1个整数,表示有n个物品 接下来n行,分别表示这n个物品的各自体积 输出描述: 1个整数,表示箱子剩余空间。 示例1 输入: 24 6 8 3 12 7 9 7 输出0 动态规划 def ZeroOnePack(v, V): n=len(v)
2022-05-20 17:27:54 387
原创 刷题笔记——验证外星语词典
方法1:密码翻译后排序 class Solution: def isAlienSorted(self, words: List[str], order: str) -> bool: dic={c:i for i,c in enumerate(order)} ans=[] for word in words: ans.append(''.join([chr(ord('a')+dic[c]) for c in word)]
2022-05-17 19:53:19 87
原创 刷题笔记——后继者
递归 # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def inorderSuccessor(self, root: TreeNode, p: TreeNode) -> TreeNo
2022-05-17 19:41:55 64
原创 刷题笔记——寻找两个正序数组的中位数
给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。 算法的时间复杂度应该为O(log (m+n))。 示例 1: 输入:nums1 = [1,3], nums2 = [2] 输出:2.00000 解释:合并数组 = [1,2,3] ,中位数 2 方法1: O(m+n) def solve(nums1,nums2): n1=len(nums1) n2=len(nums2)...
2022-05-05 21:05:06 224
原创 刷题笔记——乘积小于 K 的子数组
给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。 示例 1: 输入:nums = [10,5,2,6], k = 100 输出:8 解释:8 个乘积小于 100 的子数组分别为:[10]、[5]、[2],、[6]、[10,5]、[5,2]、[2,6]、[5,2,6]。 需要注意的是 [10,5,2] 并不是乘积小于 100 的子数组。 def solve(nums,k): ans=0 mul=1 i=0 .
2022-05-05 20:12:15 151
原创 刷题笔记——生成格雷码
描述 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。 给定一个整数n,请返回n位的格雷码,顺序为从0开始。 测试样例1: 1 返回:["0","1"] 测试样例2: 2 返回:["00","01","11","10"] 一个 n 位格雷码包含 2**n 种不同情况, 每一种情况的 n 位二进制数与其上一种情况的 n 位二进制数正好有一位不同 n 位二进制的格雷码生成方式如下: .
2022-05-05 16:43:25 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人