算法
文章平均质量分 75
苏学算法
这个作者很懒,什么都没留下…
展开
-
算法工程师在岗3年经验总结
文中作者对自己的成长和思路进行了总结,总共分了三个角度:模型策略、工作思路以及个人成长来总结自己在算法岗位三年的心得体会。作者:机智的叉烧https://zhuanlan.zhihu.com/p/453800419目录:模型策略篇。讨论算法方案的思考。工作思路篇。工作思维,结果导向。个人成长篇。如何让自己更好地解决更多问题。这次给大家介绍的是自己在解决特定算法问题下的模型和策略思路上的经验。一、模型策略篇从模型套用到方案设计:模型的套用和调参是不能解决所有问题的。从单一指标到综原创 2022-04-06 22:43:46 · 941 阅读 · 0 评论 -
深度学习调参技巧合集
本文参考自公众号【 夕小瑶的卖萌屋】的文章一、寻找合适的学习率学习率是一个非常非常重要的超参数,这个参数呢,面对不同规模、不同 batch-size、不同优化方式、不同数据集,其最合适的值都是不确定的,我们无法光凭经验来准确地确定lr的值,我们唯一可以做的,就是在训练中不断寻找最合适当前状态的学习率。比如下图利用 fastai 中的 lr_find() 函数寻找合适的学习率,根据下方的学习率-损失曲线得到此时合适的学习率为 1e-2。推荐一篇fastai首席设计师「Sylvain Gugger.原创 2022-03-26 22:39:22 · 1200 阅读 · 0 评论 -
LSTM(RNN)中的注意力机制
参考:睿智的seq2seq模型3——注意力机制概念详解与其在LSTM中的使用bilibili视频原创 2021-03-16 17:01:01 · 10123 阅读 · 1 评论 -
python保存大型 .mat 数据文件报错超出 IO 限制
python 保存 .mat 文件的大小是有限制的,似乎是 5G 以内,如果需要保存几十个 G 的数据的话,可以选用其他方式,比如 h5 文件import h5pydef h5_data_write(train_data, train_label, test_data, test_label, shuffled_flag): print("h5py文件正在写入磁盘...") save_path = "../save_test/" + "train_test_split_dat原创 2021-03-07 09:38:05 · 771 阅读 · 0 评论 -
卡方检验(Chi_square_test): 原理及python实现
参考:卡方检验(Chi_square_test): 原理及python实现原创 2020-12-29 18:10:01 · 1604 阅读 · 1 评论 -
python collections.OrderedDict() 用法
Python中的字典对象可以以“键:值”的方式存取数据。OrderedDict是它的一个子类,实现了对字典对象中元素的排序。注意,OrderedDict的 Key 会按照插入的顺序排列,不是Key本身排序:比如下面比较了两种方式的不同:import collections print 'Regular dictionary:'d={}d['a']='A'd['b']='B'd['c']='C'for k,v in d.items(): print k,v print '\nO原创 2020-12-17 15:12:36 · 2969 阅读 · 5 评论 -
yaml文件解析详解
参考:yaml文件解析详解原创 2020-12-10 11:08:18 · 309 阅读 · 0 评论 -
mac安装xlearn遇到的cmake问题
pip install Cmakepip insatll xlearn原创 2020-11-22 21:16:47 · 142 阅读 · 0 评论 -
无监督算法——自组织映射算法(Self-Organizing Map , SOM)
参考:(详细过程推导) 系统学习机器学习之神经网络(四) --SOM原创 2020-11-09 20:54:30 · 2299 阅读 · 0 评论 -
python中pandas产生模拟数据并写入 csv 文件
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltdef wgn(x, snr=10): """ 给数据 x 添加指定信噪比为 SNR dB 的高斯噪声 """ np.random.seed(100) snr = 10 ** (snr / 10.0) xpower = np.sum(x ** 2) / len(x) npower = xpower / snr原创 2020-11-08 20:54:36 · 495 阅读 · 0 评论 -
主成分分析(PCA)原理与故障诊断(SPE、T^2以及结合二者的综合指标)- Python实现
参考:主成分分析(PCA)原理与故障诊断(SPE、T^2以及结合二者的综合指标)-MATLAB实现百度文库 基于pca的故障诊断原创 2020-11-05 15:52:14 · 5807 阅读 · 3 评论 -
【面经】腾讯 AiLab 机器学习算法工程师 一面
今天早上起来一看官网,状态从初试变成了复试昨晚面试的,时间是2020-10-19 20:30,本来想着这么晚了还面试(虽然今年BBAT都还没开奖,但是笔记十月底了,今年是怎么了…),不会是KPI吧,如果还有HC,那不是部门不太好就是部门要求太高,找不到合适的人选。而且由于腾讯的面试邀请链接只能看到 “基础研究”,看不到被捞的部门,所以面试一开始,我先一通问,他们的部门,架构啥的,做啥方向的。。。(但是还没自我介绍就这么问其实有点不太礼貌)结合最后提问环节得知大概情况是这样,他们是 TEG-AiLab-原创 2020-10-20 10:47:11 · 2474 阅读 · 2 评论 -
连续小波变换(Continuous wavelet transform, CWT)Python 实现
"""连续小波变换 CWT参考论文:https://www.mdpi.com/2076-3417/8/7/1102/htmlmorlet 小波在轴承故障诊断中比较常用"""import numpy as npimport pywtimport matplotlib.pyplot as pltimport pandas as pdimport mathimport osdef CWT(data, fs=25600): t = np.arange(0, len(data)) /原创 2020-10-12 21:59:36 · 7041 阅读 · 26 评论 -
A有 n+1 个硬币,B有 n 个硬币,A比B得到更多的正面朝上的概率是多少?
美团金融服务事业部,机器学习算法二面题目描述甲有 n+1 枚硬币,乙有 n 枚硬币,求甲掷出的正面数比乙掷出的正面数多的概率 ?那如果甲有n+2枚呢?解法一甲有 n+1 枚硬币,乙有 n 枚硬币,甲和乙各抛 n 次,甲掷出的正面数等于乙抛出正面数,要想甲比乙多,甲必须再抛出一个正面,甲抛出正面概率 P=0.5 ,所以,甲比乙多的概率0.5.当甲有n+2次,那么最后2次,至少1次正面即可,所以概…解法二设事件A:“甲抛出的正面比乙抛出的正面多”事件B:“甲抛出的反面比乙抛出的反面多”显原创 2020-09-28 21:42:03 · 4250 阅读 · 3 评论 -
【面经】美团算法二面
部门是美团服务平台-营销部门的 推荐广告算法一、项目介绍问阿里的项目问CNN的演进历史,未来的改进方向二、概率题A有n+1个硬币,B有n个硬币,A比B得到更多的正面朝上的概率是多少?原创 2020-09-28 18:06:27 · 1103 阅读 · 0 评论 -
【面经】美团算法一面
一、项目介绍二、手撕代码原创 2020-09-28 16:49:54 · 977 阅读 · 0 评论 -
【剑指offer】33. 二叉搜索树的后序遍历序列
一、题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5/ \2 6/ 1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true提示:数组长度 <= 1000...原创 2020-09-28 16:49:43 · 498 阅读 · 0 评论 -
Python以一定的概率生成某个数
笔试巧用随机数一个鸡贼的技巧,注意那些输出为「二值」的题目,二值就是类似布尔值,或者 0 和 1 这种组合有限的。比如说很多题目是这样,巴拉巴拉给你说一堆条件,然后问你输入的数据能不能达成这些条件,如果能的话请输出 YES,不能的话输出 NO。如果你会做当然好,如果不会做怎么办?首先这样提交一下:print("YES")看下 case 通过率,假设是 60%,那么说明结果为 YES 有 60% 的概率,所以可以这样写代码:import randomdef number_of_certain原创 2020-09-26 10:28:27 · 3247 阅读 · 0 评论 -
【LeetCode】239. 滑动窗口最大值
一、题目描述给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1原创 2020-09-22 15:58:01 · 297 阅读 · 0 评论 -
【LeetCode】1227. 飞机座位分配概率
一、题目描述有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。剩下的乘客将会:如果他们自己的座位还空着,就坐到自己的座位上,当他们自己的座位被占用时,随机选择其他座位第 n 位乘客坐在自己的座位上的概率是多少?示例 1:输入:n = 1输出:1.00000解释:第一个人只会坐在自己的位置上。示例 2:输入: n = 2输出: 0.50000解释:在第一个人选好座位坐下后,第二个人坐在自己的座位上的概率是 0.5。 提示:1 &原创 2020-09-22 10:56:23 · 869 阅读 · 0 评论 -
【LeetCode】458. 可怜的小猪(试毒药)
一、题目描述有 1000 只水桶,其中有且只有一桶装的含有毒药,其余装的都是水。它们从外观看起来都一样。如果小猪喝了毒药,它会在 15 分钟内死去。问题来了,如果需要你在一小时内,弄清楚哪只水桶含有毒药,你最少需要多少只猪?回答这个问题,并为下列的进阶问题编写一个通用算法。进阶:假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出 “有毒” 水桶?这 n 只水桶里有且仅有一只有毒的桶。提示:1. 可以允许小猪同时饮用任意数量的桶中的水,并且该过程不需要原创 2020-09-21 18:59:22 · 1027 阅读 · 0 评论 -
【面试题】一个环,有n个点, 问从0点出发,经过k步回到原点有多少种方法
一、题目描述一个环,有n个点(编号 0 ~ n-1 ), 问从0点出发,经过k步回到原点(0点)有多少种方法 ?二、解题思路 & 代码再回到 0 点可以从右面回来,也可以从左面回来,即先到达旁边的一个点,看看有多少回来的方法即可。所以运用动态规划的思想,我们可以写出递推式如下: dp(k,j)=dp(k−1,j−1)+dp(k−1,j+1)dp(k, j) = dp(k-1, j-1) + dp(k-1, j+1)dp(k,j)=dp(k−1,j−1)+dp(k−1,j+1)dp(k,j)原创 2020-09-21 11:40:26 · 2130 阅读 · 0 评论 -
【LeetCode】209. 长度最小的子数组 & 862. 和至少为 K 的最短子数组
209. 长度最小的子数组一、题目描述给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。进阶:如果你已经完成了 O(n) 时间复杂度的解法, 请尝试 O(n log n) 时间复杂度的解法。二、解题思路 & 代码2.1 方法一:暴力法(P原创 2020-09-20 11:55:15 · 519 阅读 · 1 评论 -
最短路径算法之Dijkstra算法
参考:最短路径算法之Dijkstra算法漫画:图的 “最短路径” 问题python如何实现Dijkstra算法–最短路径问题原创 2020-09-18 19:48:23 · 421 阅读 · 0 评论 -
【LeetCode】42. 接雨水
42. 接雨水(二维)一、题目描述给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6二、解题思路 & 代码2.1 按列求求每一列的水,我们只需要关注当前列,以及左边最高的墙,右边最高的墙就够了。装水的多少,当然根据木原创 2020-09-18 11:27:47 · 844 阅读 · 1 评论 -
【LeetCode】58. 最后一个单词的长度
一、题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: "Hello World"输出: 5二、解题思路 & 代码由于要获取最后一个单词的长度,需要从尾开始遍历。但是结尾处还可能有空格所以一般的解题思路为,先去掉末尾的空格,然后从尾向前开始遍历,直到遇到第一个原创 2020-09-18 10:06:57 · 257 阅读 · 0 评论 -
【LeetCode】125. 验证回文串
一、题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false二、解题思路 & 代码2.1 直接取反比较class Solution: def isPalindrome(self, s: str) -> bool:原创 2020-09-17 22:04:46 · 184 阅读 · 0 评论 -
面试常问智力题
目录1. 赛马次数2. 用绳子计时 15 分钟3. 九球称重4. 药丸称重5. 得到 4 升的水6. 扔鸡蛋7. 砝码秤盐参考:1. 赛马次数有 25 匹马和 5 条赛道,赛马过程无法进行计时,只能知道相对快慢。问最少需要几场赛马可以知道前 3 名。先把 25 匹马分成 5 组,进行 5 场赛马,得到每组的排名。再将每组的第 1 名选出,进行 1 场赛马,按照这场的排名将 5 组先后标为 A、B、C、D、E。可以知道,A 组的第 1 名就是所有 25 匹马的第 1 名。而第 2、3 名只可能原创 2020-09-17 16:31:11 · 1630 阅读 · 0 评论 -
【LeetCode】680. 验证回文字符串 Ⅱ &变形
一、题目描述给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。二、解题思路 & 代码双指针 + 贪心算法class Solution: def validPalindrome(self, s: str) -> bool: def ch原创 2020-09-13 16:56:26 · 294 阅读 · 0 评论 -
【剑指offer】剑指 Offer 54. 二叉搜索树的第k大节点
一、题目描述给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 4示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 3 5 / \ 3 6 / \ 2 4 / 1输出: 4限制:1 ≤ k ≤ 二叉搜索树元素个数二、解题思路 & 代码解法基于原创 2020-09-12 16:51:47 · 344 阅读 · 0 评论 -
【LeetCode】328. 奇偶链表
一、题目描述给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例 2:输入: 2->1->3->5->6原创 2020-09-12 16:36:27 · 231 阅读 · 0 评论 -
【LeetCode】498. 对角线遍历 & 1424. 对角线遍历 II
I、498. 对角线遍历(蛇形)一、题目描述给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。示例:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,4,7,5,3,6,8,9]解释:说明:给定矩阵中的元素总数不会超过 100000 。二、解题思路 & 代码2.1 对角线迭代和翻转算法初始化数组 result,用于存储最后结果。原创 2020-09-12 15:08:26 · 562 阅读 · 0 评论 -
最长的公共连续子串
一、题目描述两个字符串(可能包含空格),找出其中最长的公共连续子串, 并输出其长度。二、解题思路 & 代码创建一个二维数组 dp[n][m]dp[n][m]dp[n][m],其中 dp[i][j]dp[i][j]dp[i][j] : 表示取到 s1[i]s1[i]s1[i] 和取到 s2[j]s2[j]s2[j] 时的最大连续子串长度。如果 s1[i]s1[i]s1[i] 等于 s2[j]s2[j]s2[j],则 dp[i][j]dp[i][j]dp[i][j] 等于取到 s1[i−1]s原创 2020-09-08 20:30:38 · 713 阅读 · 0 评论 -
删除最小字母(第四范式算法一面)
一、题目描述给定一个长度为n的小写字符数组,一次操作是删除一个最小字母,如有多个删除最靠左的。要求输出操作k次后的字符串。输入:abcdabcd k = 3输出:cdbcd 二、解题思路 & 代码由于都是小写字母,字符类型比较简单,故而可以用简便的方法采用哈希表将字符串进行计数将键值从小到大排序,而后从前往后删除,当删除的数量 == k 时停止from collections import Counterdef delMinAlpha(s, k): n = le原创 2020-09-07 17:11:46 · 679 阅读 · 0 评论 -
【leetCode】31. 下一个排列
一、题目描述实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1二、解题思路 & 代码一遍扫描什么样子的重新排列将产生下一个更大的数字呢?我们想要创建比当前更大的排列。因此,我们需要将数字 a[i−1]a[i原创 2020-09-07 12:23:35 · 285 阅读 · 0 评论 -
【LeetCode】32. 最长有效括号
一、题目描述给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"二、解题思路 & 代码2.1 动态规划dp[i]dp[i]dp[i] 表示以 iii 结尾的最长有效括号;当 s[i]s[i]s[i] 为 (,dp[i]dp[i]dp[i] 必然等于 000,因为不可能组成有效的括号原创 2020-09-07 11:20:08 · 388 阅读 · 1 评论 -
寻找迷宫中的最短路径
一、题目描述给定一个 n*m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中0表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于 start 处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至 end 处,至少需要移动多少次。数据保证 start 处和 end 处的数字为0,且至少存在一条通路。输入格式第一行包含两个整数n和m。接下来n行,每行包含m个整数(0或1),表示完整的二维数组迷宫。输出格式输出一个整数,表示从左上角移动至原创 2020-09-06 18:15:35 · 1455 阅读 · 1 评论 -
【LeetCode】460. LFU缓存
一、题目描述请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。它应该支持以下操作:get 和 put。get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量时,则应该在插入新项之前,使最不经常使用的项无效。在此问题中,当存在平局(即两个或更多个键具有相同使用频率)时,应该去除最久未使用的键。「项的使用次数」就是自插入该项以来对其调用 get 和 put原创 2020-09-05 21:52:08 · 229 阅读 · 0 评论 -
迷宫问题
参考:迷宫II原创 2020-09-05 18:30:00 · 118 阅读 · 0 评论 -
【剑指offer】61. 扑克牌中的顺子
一、题目描述从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例 1:输入: [1,2,3,4,5]输出: True示例 2:输入: [0,0,1,2,5]输出: True 限制:数组长度为 5 数组的数取值为 [0, 13] .二、解题思路 & 代码此 555 张牌是顺子的 充分条件 如下:除大小王外,所有牌 无重复 ;设此原创 2020-09-05 12:23:04 · 319 阅读 · 0 评论