
题目分享
文章平均质量分 79
力扣,牛客题目分享
青瓦梦滋
和你们一样热爱计算机
展开
-
【力扣题目分享】栈专题(C++)
学了栈和队列却不知道该怎么用于做题?本篇将分享几道栈和队列相关的经典题目。原创 2025-04-25 09:04:21 · 1073 阅读 · 0 评论 -
【算法】双指针8道速通(C++)
本文介绍力扣中的8道经典双指针算法题,帮助各位快速入门双指针原创 2025-04-22 22:47:02 · 1214 阅读 · 0 评论 -
力扣题目分享:只出现1次的数字I II III(位运算版)
这道题目是要找出只出现一次的数字,其他数字都会出现两次C语言可以直接用的位运算有按位与(&),按位或(|),按位异或(^)这道题用到的是按位异或先讲一下按位异或:对于两个二进制数,相同为0,不同为1,上图中前两位是不同的,所以只有前两位为1,后三位都为1,所以这两个数按位异或的结果就是00011,即3那两个相同的数按位异或的结果就是0而0和任何数异或都会是另一个数我们可以利用这个特性,来把所有的数都异或一遍,最后的结果就是单独的那个数了(相同的都变成0了,0和任何数异或都会是另一个数)原创 2025-03-25 16:53:49 · 304 阅读 · 0 评论 -
牛客题目分享:JZ64 求1+2+3+...+n(用static成员和构造函数的方法)(C++)
题目看上去很简单,因为用循环、递归、等差数列就能了了几行解决这个问题,但就如题目所说的, 如果都这些方法都用不了呢?如果只限制题目所说的条件,其实是没有限制递归的,只不过递归所需要的判断条件的if else被禁了而已,我们可以用&&代替,但这并不是出题人的真正意图,本篇将用C++中的构造函数和static成员的特性来解决!原创 2025-02-01 13:36:54 · 482 阅读 · 0 评论 -
力扣题目分享:189. 轮转数组(C语言)
第一个想到的应该都是暴力解法,也就是每次都将数组除了最后一个元素都整体往后移一位,然后将刚才的最后一个元素放到第一个位置就拿题目的用例一来举例代码如下然而这个算法的时间复杂度是O(K*N),会导致超时。原创 2024-12-03 22:49:13 · 380 阅读 · 0 评论 -
力扣题目分享:LCR 022. 环形链表 II(C语言)
想要知道环的入口点,就要知道:一个指针从相遇点开始走,一个指针从链表头开始走,它们会在环的入口点相遇。即追击问题原创 2024-11-10 21:34:59 · 449 阅读 · 2 评论 -
力扣题目分享:622.设计循环队列(C语言)
我们可以先定义一个front(头)和rear(尾)(从0开始的下标),每插入一个元素就把rear往后一位(rear指向的是已有元素的下一个位置,也就是下一次插入元素的位置),每删除一个元素就把front往前一位,但如果直接直接定义k个元素的数组,就会出现下面这种情况。这里复用了上面写的判断循环队列是否为满的函数,如果为满则无法插入,返回false,否则插入元素并返回真,首先和上一个函数一样,是一个复用,用来判断是否为空,如果不是空,就返回队尾元素。此时front删掉了最后一个元素,与rear相等,即为空。原创 2024-11-11 22:08:59 · 1197 阅读 · 0 评论 -
力扣题目分享:138. 随机链表的复制(C语言)
我们最容易想到的就是暴力解法,也就是先复制一份链表,再将每个节点的random指针指向的节点与自身节点的差值求出来,再一个个指向,如下:这样一直遍历,大概可以估算时间复杂度为O(N^2)原创 2024-11-12 23:00:25 · 377 阅读 · 0 评论