#苦行僧
这是我随心所欲记录笔记的地方,喜欢的方向:| NLP | CV | ML | 搜广推 | SE+AI |。
展开
-
python & 数学 中负数的取余的区别
python & 数学 中负数的取余的区别原创 2023-07-19 14:47:37 · 1090 阅读 · 0 评论 -
python装饰器原理 | 常用装饰器使用(@cache, @lru_cache)
python装饰器原理 | 常用装饰器使用(@cache, @lru_cache)原创 2023-02-22 15:01:51 · 4509 阅读 · 0 评论 -
最长公共子数组 + 最长公共子序列 (输出最大长度 & 所有最长公共子数组+所有最长公共子序列)
最长公共子数组 + 最长公共子序列 (输出最大长度 & 所有最长公共子数组)原创 2023-04-05 22:41:54 · 408 阅读 · 0 评论 -
LeetCode刷题记录---程序员面试金典(第 6 版)
LeetCode刷题记录---程序员面试金典(第 6 版)原创 2023-03-25 21:19:59 · 324 阅读 · 0 评论 -
LeetCode刷题记录---数位DP算法
LeetCode刷题记录---数位DP算法原创 2023-03-20 16:48:55 · 333 阅读 · 0 评论 -
算法与数据结构 - 腾讯往年春秋招coding题
算法与数据结构 - 腾讯往年春秋招coding题原创 2023-03-02 23:22:02 · 10 阅读 · 0 评论 -
十进制的小数如何转二进制?二进制表示的小数如何转十进制?
十进制的小数如何转二进制?二进制表示的小数如何转十进制?原创 2023-03-02 21:33:10 · 494 阅读 · 0 评论 -
LeetCode刷题记录---贪心算法
LeetCode刷题记录---贪心算法原创 2023-01-22 23:39:46 · 2498 阅读 · 0 评论 -
LeetCode刷题记录--- 微软企业题库
😄 今天是2022年10月30号,我开始了LeetCode的《微软企业题库》专题 刷题!原创 2022-12-30 11:28:20 · 1404 阅读 · 2 评论 -
LeetCode刷题记录--- LeetCode 热题 HOT 100
🚀 为什么要刷这个专题呢,主要是这个专题其实大部分题都做过了的,想偶尔二刷复习时就刷刷这个专题的题,我想大部分人都是比较不喜欢二刷的,但我认为二刷还不会的题才真的是你的弱项所在,所以刷这个专题的目的就是查漏补缺吧,加油ヾ(◍°∇°◍)ノ゙。原创 2022-12-30 10:53:59 · 245 阅读 · 0 评论 -
格雷码与二进制码的相互转换 (python代码实现)
格雷码与二进制码的相互转换 (python代码实现)原创 2022-11-29 16:27:56 · 663 阅读 · 0 评论 -
算法与数据结构 - 字节跳动笔试题
😄这里将持续更新接下来做过的字节跳动公司相关的笔试题,包括网上收集的秋春招笔试题、以及自己参加的字节举办的编程赛的题目。原创 2022-11-16 21:35:02 · 1244 阅读 · 0 评论 -
算法与数据结构 - 找出n内的所有质数(素数)?(暴力法、暴力优化法、埃筛法、欧拉筛法)
大家应该都会求n以内的所有质数,用的估计都是暴力法,但是当n非常大时,效率会大大降低,如果在笔试时还用暴力,估计会影响测试用例的通过率。这里记录一种最优的求法,时间复杂度可以达到O(n),下面我一步步来从暴力法进行优化:暴力法->暴力优化法->埃筛法->线性筛法>。坐稳了老铁~原创 2022-11-16 18:10:54 · 925 阅读 · 0 评论 -
ACM输入输出格式处理tricks (python)
此篇记录一下针对以后笔试中如何快速处理ACM模式下的输入输出,以便给核心算法部分编码留下更多时间。原创 2022-11-12 14:33:57 · 640 阅读 · 0 评论 -
LeetCode刷题记录---腾讯精选练习 50 题
😄今天是2022年10月30号,我开始了LeetCode的《腾讯精选练习 50 题》专题 刷题!原创 2022-10-30 10:27:27 · 513 阅读 · 0 评论 -
最短路径算法之 - Floyd算法原理及python代码实现
最短路径算法之 - Floyd算法原理及python代码实现原创 2022-10-14 11:30:35 · 1159 阅读 · 0 评论 -
最短路径算法之 - Dijkstra算法原理及python代码实现
Dijkstra算法原理与python代码实现原创 2022-10-12 17:53:58 · 1216 阅读 · 0 评论 -
算法与数据结构 - 排序算法(python实现)
各排序算法的原理与python实现原创 2022-08-24 17:32:07 · 420 阅读 · 0 评论 -
算法与数据结构 - 怎样用一个数来保存两个数?
算法与数据结构:怎样用一个数来保存两个数?原创 2022-08-23 20:28:59 · 677 阅读 · 3 评论 -
python常用tricks
二分查找模块bisert:找到合适的插入位置:如果列表中存在多个元素等于x,那么bisect_left(nums, target)返回最左边第一个大于等于target的那个索引。bisect_right(nums, target)返回最右边的那个索引加1,回最右边第一个小于等于target的那个索引。bisect()和bisect_right()等价。import bisectnums = [1,5,5,5,17]index1 = bisect.bisect(nums,5)index2原创 2022-03-07 23:00:00 · 777 阅读 · 0 评论 -
LeetCode刷题记录---剑指Offer II
剑指Offer II 全部题解已更新完毕~~~原创 2022-02-23 15:20:06 · 1344 阅读 · 0 评论 -
LeetCode刷题记录---二分算法
每次刷到二分算法题将在此博文更新~~~????以下具体理论知识,请参考Carl哥整理的:点击进入【注:以下刷题顺序均按Carl哥的进行,Carl哥的微信公众号:代码随想录。欢迎大家关注!】????理论基础:毕竟二分算法是比较基础的一个算法,还是得仔细弄清里面的边界处理????????使用二分算法虚满足2个条件:1.有序数组2.数组中无重复元素(有重复用二分算法返回的值可能不唯一) 二分算法其实理论较为简单,但是在代码实现时,很容易在边界条件处理时弄晕。 其实只要按循环不变量(区间的定义即不原创 2021-12-22 22:50:39 · 408 阅读 · 0 评论 -
LeetCode刷题记录---KMP 算法
KMP字符串匹配算法原创 2021-12-18 13:13:58 · 823 阅读 · 0 评论 -
LeetCode刷题记录---单调栈专题
When to use 单调栈?:通常是一维数组,要寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置,此时我们就要想到可以用单调栈了。原创 2021-12-04 23:43:03 · 1021 阅读 · 0 评论 -
LeetCode刷题记录---二叉树专题
每次刷到二叉树算法题将在此博文更新~~~起个模版即将开刷二叉树专题????????题目:难度题目中等哈哈⭐哈哈:原创 2021-10-12 23:34:32 · 301 阅读 · 0 评论 -
LeetCode刷题记录---位运算 算法
每次刷到位运算算法题将在此博文更新~~~????关于python中的位运算以及负数的存储方式,建议看以下链接,这应该是我看到讲的最清楚的:参考链接:python解法详细解读(位运算具体过程以及负数存储方式)????题目:难度题目中等两数之和⭐两整数之和: 先看前文参考链接中的《python解法详细解读(位运算具体过程)》,了解清楚python中负数的存储方式,以及位运算这题就简单了。class Solution: def getSum(self, a:原创 2021-09-26 13:08:12 · 166 阅读 · 0 评论 -
LeetCode刷题记录---回溯(Back Tracking)算法
每次刷到回溯算法题将在此博文更新~~~????这里简单介绍下回溯:回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。—《百度百科》回溯是递归的副产品,只要有递归就会有回溯,所以也是一个递归函数。回溯本质是穷举所有可能(即暴力搜索,有时候没法for循环迭代,只能暴力),其本身并不是什么高效的算法,可以通过剪枝使其稍稍原创 2021-08-17 12:27:59 · 412 阅读 · 2 评论 -
C++类的构造函数、析构函数
一道题看完你就懂了***《看代码注释即可》***直接上题目:代码:#include<iostream>#include<stdlib.h>using namespace std;class Cat{ int data;public: Cat() { data =0; cout << "Default Constructor of Cat is Running"<<endl; } Cat(int x) { dat原创 2020-09-11 20:22:18 · 180 阅读 · 0 评论 -
一道题目让你弄清c++类中的(无参、有参)构造函数、拷贝构造函数、析构函数、输出流重载、四则运算符重载
一道题目让你弄清c++类中的(无参、有参)构造函数、拷贝构造函数、析构函数、输出流重载、四则运算符重载下面简单介绍下理论知识,后面用一道题实操解释,代码带有注释讲解。类的构造函数的名称与类的名称同名,不返回任何类型,它在每次创建类的新对象时自动调用。1.无参构造函数无参构造函数即默认调用的构造函数。2.有参构造函数创建新对象时,传进去对应参数,即可初始化。3.拷贝构造函数它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。在以下三种情况下系统会自动调用拷贝构造函数原创 2020-09-11 19:46:14 · 592 阅读 · 0 评论 -
c++实现7种经典的排序算法+原理讲解
c++实现7种经典的排序算法+原理讲解主函数int main(){ int n[] = { 2,3,5,1,4 }; vector<int> a(n, n + 5); vector<int> b(5); //C++的sort()则是改进的快速排序算法,不用compare就是默认升序 //sort(a.begin(),a.end(),compare); bubble_sort(a); //selection_sort(a); //shell_sor原创 2020-09-06 23:27:48 · 1226 阅读 · 1 评论 -
《动态规划》:01背包、完全背包、多重背包、01背包组合、完全背包组合&排列问题
⭐以下关于3个问题的具体解释都在代码注释中。 ????01背包问题: 先来看一个二维dp数组的写法,具体解释看注释即可:def bag_01_2D(): weight = [1, 3, 4] value = [15, 20, 30] bag_weight = 4 #状态定义:dp[i][j]表示从0-i 个 物品中选择不超过j重量的物品的最大价值 dp = [[0]*(bag_weight+1)]*(len(weight)+1) #边界:第一列原创 2021-08-12 18:38:19 · 2480 阅读 · 2 评论 -
LeetCode刷题记录---动态规划(DP)算法
动态规划算法把待求解问题分成若干子问题,然后从这些子问题的可行解一步步递推到最优解。通常用于求解具有某种最优性质的问题。 按照网上大佬总结的,通常有如下5步: 1.确定dp数组以及下标的含义。 2.确定递推公式。 3.dp数组如何初始化。(有时候初始化非常关键) 4.确定遍历顺序。(即for循环的顺序,这个也是蛮讲究的) 5.举例推导dp数组。(也就是程序不对的时候,自己推导看看和代码打印的dp数组有啥不同) ⭐直接看下面题目的简单难度的几道,就能大概的了解DP的思想。 ⭐⭐⭐看背包变种题目之前原创 2021-08-10 20:56:22 · 788 阅读 · 0 评论 -
LeetCode刷题记录---拓扑排序(Topological Order)算法
这里先来讲下拓扑排序: 一个较大的工程经常被分成许多子工程,把这些子工程称为活动。可用有向图来反映出各个活动之间的先后顺序。顶点代表活动,有向边代表活动的先后顺序。通常称这种图为顶点活动网(AOV)。一个AOV网是一个有向无环图(所以判断是否存在拓扑序列,即判断该有向图是不是无环图)。 在AOV网中,把所有活动排列成一个线性序列,使得每个活动的所有前驱活动都排在该活动的前面,把此序列叫做拓扑序列,由AOV网构造拓扑序列的过程就叫拓扑排序。 拓扑序列不唯一。 拓扑排序算法主要是循环执行两步,直到不存在原创 2021-08-07 16:10:25 · 622 阅读 · 0 评论 -
LeetCode刷题记录---并查集(DSU)算法
每次刷到并查集(DSU)算法题将在此博文更新~~~关于并查集的资料请看以下2个链接:1.什么是并查集?2.【图解】遇到就深究——并查集并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。 以下为DSU的python简单实现(关于DSU的find部分和union部分的优化可以看上面:链接2)class DSU: def __init__(self, nums): self.parent = {num: num for nu原创 2021-07-24 23:40:33 · 498 阅读 · 2 评论 -
LeetCode刷题记录---广度优先搜索(BFS)算法
每次刷到广度优先搜索(BFS)算法题将在此博文更新~~~ 广度优先搜索(BFS)类似于树的按层遍历,可以用队列实现。 其过程可以描述为:首先访问一个初始顶点,并将其标记为已访问过,接着访问其所有未被访问过的邻接点,其访问次序可以任意,并均标记为已访问过。然后在分别依次访问这些顶点的所有未被访问过的邻接点,并标记为已访问过。以此类推,直到图中所有和初始点有路径相通的顶点都被访问过。 先来介绍一下创建队列使用到的函数: collections.deque()创建的队列是一个双端队列,可以从队列两端插原创 2021-05-22 12:35:54 · 379 阅读 · 1 评论 -
LeetCode刷题记录---贪心算法
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。通过局部最优解慢慢地逼近全局最优解。1. 跳跃游戏#执行用时:44 ms, 在所有 Python3 提交中击败了63.68%的用户#内存消耗:14.9 MB, 在所有 Python3 提交中击败了50.69%的用户class Solution: def jump(self, nums: List[int]) -> int: maxpos, end, step = 0, 0, 0原创 2021-04-20 14:53:09 · 224 阅读 · 0 评论