自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C++| VSCode更改exe路径和配置头/源文件

注意调用规则噢,还要注意路径名不要写错,可以直接右键选择copy path,然后再调整成相对路径(当然绝对路径也行),按照以上步骤应该是没问题滴。2.VSCode在进行调用函数文件时需要配置头文件与源文件,故若能够配置好头文件夹和源文件夹,则后续的头文件和源文件只需放入这两个文件夹中即可实现跨文件函数调用。1.C++配置完环境后,会发现每运行一个.cpp文件就会生成exe文件,不美观且很不便捷,因此想将其(exe文件)放置一个文件夹中。即已经拥有launch.json,task.json文件了。

2024-05-19 11:19:39 905 1

原创 数位dp-递推迭代和记忆搜索法dfs

当然上述和下图说明的都是遍历与4368同数位的数(即4位数的数),若还需找到4368小于四位数的则直接从第二高位开始1-9及后面都没有限制即可。①其中前两维的含义一般dp[i][j]表示:i位数其中最高位为j(eg.i=3,j=3,则300-399之间)的(满足某个条件)的数的个数。首先,如果是dfs暴力搜索,显然这道题目也可以解决,但时间复杂度会高很多,因为多了很多不必要的计算,以1举例,则代码如下。即此时第二高位只能取0-3,当第二高位取0-2时,后面两个数位取啥都可以,当第二高位取3时,

2024-04-05 22:18:36 653 1

原创 [超详细]3种方法判断一个数是否为质数(Python)

(分别针对6x-1和6x+1的,i从5开始即每次取i时就是在判断6x-1(x>=1),取i+2时就是在判断6x+1(x>=1)),即t%i ==0 or t%(i+2) ==0,一旦有能被整除的就是False。对于任一个自然数t,只要t>=5, 则可以写成6x-1,6x,6x+1,6x+2,6x+3,6x+4,...(x>=1)中的任一个。t=6x-1或者t=6x+1(x>=1),可是这个是t,又不是t的因数。因此,对于t>=5,只有t可以写成t=6x-1或者t=6x+1(x>=1)时。

2024-03-29 11:39:43 19396 10

原创 ACM模式-Python输入输出

利用sys.strdin.readline()实现,只需将上述的input()都换成sys.strdin.readline()即可。# 以读入空行结束(这里的空行可以由多个空格组成 也视作结束)这说明每调用一次input()函数只会识别到输入的一行。读取多行输入且第一行为行数(即固定行数)# 以读入空行且是空字符串结束。读取多行输入但不知有多少行。

2024-03-23 15:54:45 1881

原创 python_ACM模式《剑指offer刷题》二叉树3

因为哈希表my_dict存储了中序遍历节点与index的映射关系,也就是通过my_dict,可以找到某棵树(子树)的根节点,也就是找到左右子树在中序遍历中的分界线。因此要确定一个树的左右子树,只需要前序遍历中(这里为什么是前序遍历的,因为只有通过前序遍历才能得到root)root的index,中序遍历的左右边界left的index和right的index(这里因为只要root,就可以通过中序遍历得到在中序中root的index,这样再结合left和right的index,但是其思路与思路一就不同了。

2024-02-25 00:54:49 982

原创 python_ACM模式《剑指offer刷题》二叉树2

面试官有可能问到:如果你需要频繁地查找第k小的值,你将如何优化算法?(见思路三)

2024-02-07 09:23:18 796

原创 python_ACM模式《剑指offer刷题》二叉树1

1. 询问是否可以使用双端队列 (看后面思路就可知为什么要问这个)

2024-02-03 18:09:50 539

原创 python_ACM模式《剑指offer刷题》链表4

判断环是否存在:设定一快一慢指针,均从头节点出发,快指针一次走两步,慢指针一次走一步。若无环,则快指针会先到达空,返回False表示无环;

2024-02-02 09:22:19 458

原创 python_ACM模式《剑指offer刷题》链表3

注意:剑指offer上对这道题目的描述是给定的删除节点是节点指针。这表明这道题可以用时间复杂度为O(1)的方式解决。而leetcode上对类似本题的描述是:给定,这决定了本题时间复杂度必然至少为O(N)。因为必定要从头遍历链表。

2024-01-28 16:41:49 398

原创 python_ACM模式《剑指offer刷题》链表2

说人话就是:上图中第一步构建完后就是上图,可以看到新链表节点(A',B',C',D',...)是没有random指针的(random指针为None), 这时可通过其前一个节点帮助找其复制后的random节点,例如。1. 暴力解法 → 第一次遍历原链表构建一个复制了next的新链表,第二次遍历原链表,对每个原链表的节点的random从头寻找,同时新链表也同步寻找,即可找到复制链表的random。在第一次遍历原链表时存储(原链表节点,新链表节点)的映射关系;实现时复O(N),空复O(1)。

2024-01-28 11:24:29 554

原创 python_ACM模式《剑指offer刷题》链表1

采用递归的思想 注意是递归到最后一个元素才开始打印 即要先写递归 后写打印代码。2. 想要实现先遍历后输出,即先进后出,因此可借助栈结构。3. 可用隐式的栈结构,递归来实现。1. 翻转链表,再遍历链表打印。

2024-01-21 18:25:20 621

原创 字节经典面试题--找小于n的最大数

这里是python版本,并将limit转成字符串利用index下标索引提取。总体而言肯定是上述方法是更优的,但是转成字符串处理方便些,面试应该也十分足够了。最后面再赋一个暴力解法(回溯暴力法)。【如果发现代码任何问题 十分欢迎评论区交流】视频是C++版本,且用offset直接提取int的每位数。贪心 + 二分,终于被我啃下来了。

2023-12-25 11:43:36 4125 6

原创 Python三种方法实现topk问题(源码)

2. 第一次优化:首先根据n数组建立一个大顶堆 每次获取arr[0](并将其移除) 原地移除的方法是将arr[0]与arr[-1]对调 后在arr[0:-1)时向下调整法 反复上述步骤 直至k次 则获得了前k个最大的数 ------时复为O(n + klog_2n) 前一个n是建堆的时复,后面是进行了k次向下调整法,这样则当n很大时 log_2n趋于稳定 此时为线性复杂度O(n)时复最差为O(k+(n-k)log_2n)前面是k个堆的排序 后面是最糟糕的情况 即后面每次都要调整。

2023-12-12 21:51:43 694

原创 Python手撕kmeans源码

【代码】Python手撕kmeans源码。

2023-12-12 17:06:43 199

原创 leetcode415拓展字符串相加(带符号)

【代码】leetcode415拓展字符串相加(带符号)

2023-11-19 12:03:16 223

原创 python对数组的快排 加注释

【代码】python对数组的快排 加注释。

2023-11-10 16:27:58 135

原创 python不调用heapq库 实现大顶堆,小顶堆

参考了博客,并对其进行了堆的push() 和 降序排序的补充。

2023-10-28 16:50:24 333

原创 MATLAB如何进行封装打包成独立可执行exe.

本文提供matlab封装打包学习的基本思想和基本途经,并以一个例子来说明及解决封装中的五个问题,打包的两种方式。

2022-01-05 12:21:45 19250 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除