自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(126)
  • 资源 (3)
  • 收藏
  • 关注

原创 1759. 统计同质子字符串的数目

核心思想是,计算以j为结尾,开头在i以后的同质字符串数目。

2025-04-03 21:47:22 333

原创 LeetCode 3254. 长度为 K 的子数组的能量值 I

统计以每个位置为结尾的连续数组的长度。c[i]代表以i位置为结尾的连续数组长度。从示例中可以看出,子数组是指连续子数组。豆包给出了类似我们第一种算法。

2024-11-06 21:41:50 419

原创 一些python torch函数

torch.tril` 用于获取矩阵的下三角部分,并将上三角部分置零。`torch.triu` 用于获取矩阵的上三角部分,并将下三角部分置零。这两个函数在矩阵操作和线性代数计算中非常有用,尤其是在需要分解矩阵或进行特定形式的矩阵运算时。

2024-11-04 12:01:54 1047

原创 Python中常见的矩阵乘法操作

用于矩阵乘法。:用于数组的元素逐个相乘。点操作(对于一维数组,执行点积(内积)。对于二维数组(矩阵),执行矩阵乘法,和等价。这些操作符和函数在数组和矩阵计算中非常常用,选择合适的操作符可以大大提高代码的简洁性和可读性。

2024-11-03 18:45:20 468

原创 LeetCode 638. 大礼包

正逢双十一凑单中,这个题目还是非常应景的~~O(∩_∩)O哈哈~

2024-11-03 14:48:30 1097

原创 LeetCode 3226. 使两个整数相等的位更改次数

2. 已知n可以通过修改某些位置上1为0得到k,接下来进行异或操作(n和k不同的位为1,即需要修改的位为1),统计操作结果中1的位数即可。,如果操作结果等于k,则n可以通过修改某些位置上1为0得到k;反之则不能,直接返回-1.如果把n和k的二进制为1的位分别看做一个集合,那么k应该是n的一个子集。如果无法实现,返回 -1。中任意一个值为 1 的位,并将其改为 0。依次取n和k最后一位,进行比较。

2024-11-02 23:27:11 394

原创 LeetCode - 3259. 超级饮料的最大强化能量

然而,如果从一种能量饮料切换到另一种,你需要等待一小时来梳理身体的能量体系(在那个小时里你将不会获得任何强化能量)。这两个数组分别代表 A、B 两种不同能量饮料每小时所能提供的强化能量。每一步要么选择A,要么选择B,暴力解法是列举所有可能的序列组合。在有固定解法或者套路的题目上,AI是可以替代人类的。列举所有可能的序列组合的优雅解法则是动态规划。时间复杂度为计算d数组(2n元素)的时间,下面思考动态规划的状态方程:第[i]步,你可以选择从饮用任意一种能量饮料开始。空间复杂度为d数组的空间2n,即。

2024-11-01 20:04:36 541

原创 LeetCode 3165. 不包含相邻元素的子序列的最大和

每更新一个元素,就要对整个求和数组sum_sequence进行运算,这里存在着一个优化空间,因此我们考虑建立。是指从另一个数组中删除一些或不删除元素而不改变剩余元素顺序得到的数组。对于了解线段树的同学,可能看到“查询”这个词,就很容易想到线段树了。空间复杂度:线段树存储占用了4n+1的空间,因此空间复杂度是。返回所有查询的答案之和。由于最终答案可能非常大,返回其对。记nums数组长度为n, queries长度为m。,每次查询(更新耗时)时间复杂度是。线段树(这是一种区间查询的树), 总的时间复杂度为。

2024-11-01 18:51:47 1046

原创 数据结构之线段树

的时间复杂度内实现单点修改、区间修改、区间查询(区间求和,求区间最大值,求区间最小值)等操作。线段树是算法竞赛中常用的用来维护。

2024-11-01 18:51:10 437

原创 LeetCode 3216. 交换后字典序最小的字符串[简单]

时间复杂度:鉴于 Python字符串是不可变的,因此生成交换后的新字符串实际是一个字符串copy的过程,时间复杂度是O(n),又因为字符串长度为n,即遍历了n次,所以时间复杂度是。相同奇偶性:如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5 和 9、2 和 4 奇偶性相同,而 6 和 9 奇偶性不同。空间复杂度:small_str长度为n,遍历过程中始终存在一个长度为n的temp_str,因此空间复杂度为2n, 即。如果一个奇数和一个偶数相加,则和是奇数。给你一个仅由数字组成的字符串。

2024-10-31 10:33:17 483

原创 LeetCode - 685. 冗余连接 II

该树只有一个根节点,所有其他节点都是该根节点的后继。该树除了根节点之外的每一个节点都有且只有一个父节点,而根节点没有父节点。如果附加边指向根节点,则所有节点入度为1(即所有节点都只有1个父节点),此时一定存在环,如果附加边不指向根节点,则存在一个子节点入度为2(存在1个节点,有2个父节点),只有1条冲突边(即与其他边指向同一个子节点的边),此时删除冲突边即可。但是题目中的树是有向的,只能去掉[2, 1],才能形成一条正确的树。即存在1条环路边(即加入后使图中出现环路的边),此时删除环路边即可。

2024-10-31 10:06:41 980

原创 LeetCode-684. 冗余连接

智谱清言 正确的解答了这道题目,只是在并集操作上多存储了一个rank数组,略显复杂。中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为。请找出一条可以删去的边,删除后可使得剩余部分是一个有着。) 的树中添加一条边后的图。添加的边的两个顶点包含在。如果有多个答案,则返回数组。给定边的个数 即为 节点的个数。) 的树中添加一条边后的图。树可以看成是一个连通且。又是被AI替代的一天啊。

2024-10-27 19:35:13 625

原创 LeetCode - 4. 寻找两个正序数组的中位数

个元素一定是小于我们目标值的,因此可以排除这一段(如上图中灰色部分),在剩余元素中继续寻找第(3. 如果某个数组完全被排除掉了,则直接在剩余的另一个数组中定位目标元素即可。题目给出的条件都用上了,时空复杂度也得到了提升,但仍然不符合题目要求的。1. 如果k=1, 则首先比较两个数组首位元素,取最小的一个。(对于长度为偶数的情况,需要寻找两次,并取平均值)智谱清言给出了一种新的解法,划分数组二分法。合并成一个新数组,然后sort,取中位数。接下来,人生苦短,我用Python~个元素,较小的一个数组中的第1~

2024-10-26 19:20:21 790

原创 LeetCode——3180. 执行操作可获得的最大总奖励 I

通过定义可知,对升序排列后的rewardValue, 最大的奖励,因此,可以定义奖励状态数组为:其中每个元素。

2024-10-25 12:42:54 536

原创 LeetCode-最长公共子串

是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。结果是一个包含 n个引用的列表,每个引用都指向同一个包含m个 0 的一维列表。通过下图可以看到,当对第二行的第二个元素进行修改时(0->1),所有行的第二个元素都发生了变化。操作符来重复一个列表时,其实是在复制列表的引用,而不是列表的内容。是text的长度,并且这些子序列包括空串和text本身。最长公共子序列是 "ace" ,它的长度为 3。是这两个字符串所共同拥有的子序列。

2024-10-24 21:15:41 1188 2

原创 Task04 吃瓜教程——第五章 神经网络

神经网络(neural networks)是仿照动物的神经系统而来,期望机器可以获得类似人类的学习的能力。神经网络中最基本的模型叫做神经元(neuron)或者(unit)。1943年, McCulloch and Pitts 按照生物神经元的功能(兴奋的接受,传递)抽象出神经元模型,即"M-P神经元模型"。上图中,表示来自n个其他神经元的输入信号,为这个n信号的权重。神经元收到这些输入之后,会计算总输入值,并将总输入值与当前神经元的阈值进行比较,然后通过激活函数(activation function)处理

2022-06-26 01:10:24 327

原创 Task03 吃瓜教程——西瓜书第四章决策树

决策树(Decision tree)是一种常见的机器学习方法,常用于分类任务。包括一个根节点,若干内部节点和若干叶子节点。一、决策树的流程二、划分选择信息增益增益率基尼指数三、剪枝处理剪枝(pruning)是解决过拟合问题的主要手段。预剪枝后剪枝四、连续与缺失值连续值处理缺失值处理五、多变量决策树...

2022-06-24 00:44:28 442

原创 Task2 吃瓜教程——西瓜书第三章 线性模型

定义:线性模型(linear model)是通过属性的线性组合来进行预测的函数模型。给定由d个属性组成的示例线性模型学习的过程即确定和的过程。给定数据集, 其中(列向量),。试图学得 和以尽可能准确预测输出的过程,叫作线性回归。示例中属性是d维向量, 共有m个样本。问题:数据集简写为, 试图学得使得 (1)损失函数——均方误差:(2)记最小二乘法参数估计:分别对求导得:(3)(4)因为在偏导为0时取得极值,因此令(3)(4)为0,可解得:其中多元线性回归需要转换为矩阵的运算。而b无法直接在矩阵中表示。可以

2022-06-20 22:00:35 467

原创 Task1 吃瓜教程-西瓜书 第1-2章

如果有多个假设与观察一致,则选择最简单的那个考虑二分类: 从结果看出,总误差与学习算法无关。对于任意两个学习算法,他们的期望性能相同。这就是NFL(没有免费的午餐原理) ROC全称是“受试者工作特征”(Receiver Operating Characteristic)。机器学习中,根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别作为横、纵坐标作图,就得到了ROC曲线。纵轴(真正例率) 横轴(假正例率) AUC(Area Under ROC Curve

2022-06-15 00:12:42 241

原创 交换两个数的值

一、中间临时变量法void swap(int &a, int &b) { int temp = a; a = b; b = temp;}二、异或法交换变量在计算机刚发明时,内存非常“精贵”。这种变量交换往往是非常奢侈的。于是计算机“大牛”发明了一些算法来避免使用中间变量:void swap(int &a, int &b) { a = a ^ b; // 充当临时变量 b = b ^ a; // <=>

2021-03-15 11:53:43 150

原创 leetcode——反转字符串中的单词

题目:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格方案一:原地解法,分组旋转字符串, 可以接受多个连续空格class Solution {private: void reverseString(string&.

2021-01-29 19:50:14 302

原创 leetcode——反转字符串

题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。链接:https://leetcode-cn.com/problems/reverse-string示例:1、输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]2、输入:[

2021-01-29 19:17:22 128

原创 leetcode——Nim游戏

题目:你和你的朋友,两个人一起玩Nim 游戏:桌子上有一堆石头。 你们轮流进行自己的回合,你作为先手。 每一回合,轮到的人拿掉1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为n的情况下赢得游戏。如果可以赢,返回true;否则,返回false。示例:1、输入:n = 4输出:false 解释:如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 1 块、2 块 还...

2021-01-28 21:20:24 356

原创 leetcode——除自身以外数组的乘积

题目:给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。说明:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内 请不要使用除法,且在O(n) 时间复杂度内完成此题。示例:输入: [1,2,3,4]输出: [24,12,8,6]方案一:除法用到除法,就要检验除数是否为0class Solution...

2021-01-28 20:56:09 165

原创 leetcode——删除链表中的节点

题目:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为要被删除的节点。示例:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list方案:思考:这个题目非常简单,如果在真实面试...

2021-01-28 20:33:27 170

原创 leetcode——2的幂

链接:https://leetcode-cn.com/problems/power-of-two/题目:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例:1、输入: 1输出: true解释: 20 = 12、输入: 16输出: true解释: 24 = 163、输入: 218输出: false思考:2的幂特征:最高位是1,其余位为0。 如果输入值小于等于0, 则必返回false方案一:时间复杂度空间复杂度方案二:位运算

2021-01-27 21:50:04 308

原创 leetcode——数组中的第K个最大数

题目:在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例:输入: [3,2,1,5,6,4] 和 k = 2输出: 5方案一:快排法变形class Solution {public: int quickSelect(vector<int>& a, int l, int r, int index) { int q = randomPartition(a, l, r)..

2021-01-27 00:02:51 911

原创 leetcode——反转链表

题目:反转链表示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL方案一:迭代法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} *

2021-01-25 23:33:48 100

原创 leetcode——多数元素

题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。链接:https://leetcode-cn.com/problems/majority-element示例:1、输入:[3,2,3]输出:32、输入:[2,2,1,1,1,2,2]输出:2方案一:排序法class Solution {public: int majorityElement..

2021-01-24 21:22:20 129

原创 leetcode——排序链表

题目:给你链表的头结点head,请将其按升序排列并返回排序后的链表。示例:输入:head = [4,2,1,3]输出:[1,2,3,4]方案:class Solution: def sortList(self, head: ListNode) -> ListNode: if not head or not head.next: return head # termination. # cut the LinkedList at ...

2021-01-23 23:45:40 114

原创 leetcode——环形列表

题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是 -1,则在该链表中没有环示例:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。方案一:class Solution {public: bool hasCycle(ListNode *head) { ListNode* fast .

2021-01-22 23:59:58 672 1

原创 leetcode——买卖股票的最佳时机2

题目:给定一个数组,它的第i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/示例:1、输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天...

2021-01-21 12:30:51 137

原创 leetcode——买卖股票的最佳时机

题目:给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock示例:1、输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖.

2021-01-21 12:03:17 131

原创 leetcode——二叉树的最大深度

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回最大深度 3方案一 递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * Tree.

2021-01-20 20:33:51 139

原创 leetcode——格雷编码

题目:格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。给定一个代表编码总位数的非负整数n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。格雷编码序列必须以 0 开头。https://leetcode-cn.com/problems/gray-code示例:1、输入:2输出:[0,1,3,2]解释:00 - 001 - 111 - 310 - 2对于给定的n,其格雷编码序列并不唯一。例如,[0,2,3,1]也是一个有...

2021-01-20 20:17:06 163

原创 leetcode——合并两个有序数组

题目:给你两个有序整数数组nums1和nums2,请你将nums2合并到nums1中,使nums1成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小等于m + n)来保存 nums2 中的元素链接:https://leetcode-cn.com/problems/merge-sorted-array示例:输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,...

2021-01-20 10:40:25 267

原创 leetcode——爬楼梯

题目:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?(n为整数)https://leetcode-cn.com/problems/climbing-stairs/示例:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶方案一:动态规划class Solution {public: int climbStairs(int n) { if (n..

2021-01-19 21:06:28 102

原创 leetcode——螺旋矩阵

题目:给定一个包含mxn个元素的矩阵(m行,n列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例:1、输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]2、输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]方案一:class Solution {pu...

2021-01-18 21:28:28 509

原创 leetcode——字符串相乘

题目:给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式。示例:输入: num1 = "2", num2 = "3"输出: "6"方案一:class Solution {private:// 字符 乘 字符串string charMultiStr(string num, char c) { if (c == '1') { return num; } else if (c =...

2021-01-17 23:09:09 506 1

原创 leetcode——搜索旋转排序数组

题目:升序排列的整数数组nums在预先未知的某个点上进行了旋转(例如,[0,1,2,4,5,6,7]经旋转后可能变为[4,5,6,7,0,1,2])。请你在数组中搜索target,如果数组中存在这个目标值,则返回它的索引,否则返回-1。(https://leetcode-cn.com/problems/search-in-rotated-sorted-array/)示例1、输入:nums = [4,5,6,7,0,1,2], target = 0 输出:42、输入:...

2021-01-16 17:27:46 138

MFC 系统托盘的使用

MFC 基于对话框的程序 最小化到托盘的实现

2015-02-14

MFC经典程序之二 ——时钟

用到以下知识: 1、基于View的MFC工程中,系统菜单check状态的设置。 2、动态绘制图像 3、CColorDialog的使用

2015-02-01

MFC经典程序之一 时钟实现

MFC经典程序之一。用于实现时钟。 主要用到以下内容: 1、CDC画圆,画线,输出文字。 2、基于单文档的MFC工程中,追加菜单和Toolbar响应函数。 3、计时器的使用 SetTimer,KillTimer 4、MFC时间控件Date Time Picker 的使用。 欢迎讨论和批评指正。 QQ:879019712

2015-01-25

空空如也

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

TA关注的人

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