
leetcode
文章平均质量分 50
桃之夭夭ღ
合作咨询威SunnyGY_
展开
-
[剑指offer 27][LeetCode234] 回文链表
偷偷刷题记录回文链表思路思路1. 处理链表最粗暴的方式就是拷贝到数组中。考试时候也是,只要不会超内存,完全这么办思路2. 快慢指针。因为我们判断是不是回文链表,回文的特性就是以中为界,两头对称。由于我们不能像使用数组一样采用中心拓展或者两边指针夹逼的方法。我们采用筛选中点与中点并反向链表比较的方式。相比之下,第一种方式需要遍历一遍链表和一遍数组。第二种方式,需要遍历一遍链表,翻转半个链表,再同时遍历两个半长度的链表。从耗时上说时间不变,但是不开辟额外空间。C语言,链表转数组法/** * D原创 2022-05-10 11:07:03 · 152 阅读 · 0 评论 -
[剑指offer 24] 反转链表
题目复习反转链表字节面试的一道面试考题。属于简单题,毕竟复杂的面试也不好判题对吧(狗头)思路思路不难,首先我们观察链表,一般链表指的都是单向链表struct ListNode { int val; struct ListNode *next;};那么我们其实遍历到子节点next以后找不到父节点的。所以要反转的话,最通俗的思路,就是遍历,放到数组里,反向输出。另有一题回文链表也可以这么做。但这样会开辟额外的内存空间。在相同时间要求的情况下,如果不需要保留原始链表,我们可以通过三个指针原创 2022-05-10 09:50:58 · 136 阅读 · 0 评论 -
[leetcode]5. 最长回文子串 647. 回文子串
昨日刷题,今日补发解题思路中间扩展,遍历数组,以每一项为中心,或以每两项为中心,向外拓展。学习一下pair概念,还有string的substr的用法C++做法class Solution {public: pair<int, int> expandAroundCenter(const string& s, int left, int right) { while (left >= 0 && right < s.size()原创 2022-05-07 08:25:56 · 275 阅读 · 0 评论 -
[leetcode933]最近的请求次数
每日偷偷刷题933和队列有关思路每来一次ping就记录时间,并返回3000s内ping的次数,本题数据量很大,正向暴力肯定是不行的。初步思路:反向暴力,不删列表数据。从ping的下标往前推,并统计3000s的数据。反向暴力,做出来耗时6000多秒差点超时,根本原因就是后面大数据量时每次都要统计3000次。class RecentCounter(object): def __init__(self): self.ping_req = list() def pin原创 2022-05-06 11:33:47 · 499 阅读 · 1 评论 -
[Leetcode15]三数之和
三数之和 快速排序+双指针 vector 二级数组 二级指针原创 2022-05-05 16:24:20 · 589 阅读 · 0 评论 -
[Leetcode713]乘积小于 K 的子数组
乘积小于 K 的子数组 滑动窗口 快慢指针 二分查找 前缀和原创 2022-05-05 10:02:45 · 156 阅读 · 0 评论 -
C/C++队列与循环队列
队列 先进先出 循环队列 判满判空 队头 队尾 空队列 满队列 C/C++数据结构原创 2022-02-11 02:16:01 · 909 阅读 · 0 评论 -
UTHash使用教程
uthash是一个使用宏定义处理的C语言哈希表头文件。因此添加uthash只需要 #include "uthash.h" 即可完成高效hash操作。原创 2022-01-31 01:18:04 · 3971 阅读 · 0 评论 -
【c语言数据结构】二叉树
该示例代码介绍了一个完全二叉树的建立,以及前序遍历,中序遍历和后序遍历的索引结果。原创 2022-01-20 23:32:04 · 870 阅读 · 0 评论 -
[Leetcode456]132模式 - 单调栈
[Leetcode456]132模式 - 单调栈给你一个整数数组 nums ,数组中共有 n 个整数。132 模式的子序列 由三个整数 nums[i]、nums[j] 和 nums[k] 组成,并同时满足:i < j < k 和 nums[i] < nums[k] < nums[j] 。1. 暴力遍历,O3的复杂度,必超时。2. 为什么用单调栈: 1 - 3 - 2 模式,在数组中,有局部单调递增递减趋势,都可以使用单调栈。 3. 从该题目可知,数组的 1 - 3原创 2021-11-20 19:43:18 · 402 阅读 · 0 评论 -
[Leetcode16]最接近的三数之和
[Leetcode16]最接近的三数之和转载自leetcodehttps://leetcode-cn.com/problems/3sum-closest/1.题目给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。2.解题思路这是一道数组搜索题,需要找到满足题意的三个整数,并返回他们的和。分析:idea1. 如果使用暴力遍历,显然需要三重循环,是不可取的。i原创 2021-05-27 02:23:22 · 404 阅读 · 0 评论 -
[LCP28] 采购方案
LCP 28 采购方案1.题目小力将 N 个零件的报价存于数组 nums。小力预算为 target,假定小力仅购买两个零件,要求购买零件的花费不超过预算,请问他有多少种采购方案。注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 12.解题思路从题目给的注意和数据量来看,暴力循环一定是不行的。因此代替暴力循环最常见的方法就是双指针。首先分析题目:输入是数组和预算目标值。输出的是数组中任意选取两个数相加可以小于目标值的所有方案。因原创 2021-05-21 01:48:36 · 124 阅读 · 0 评论 -
【Leetcode819】最常见的单词
[Leetcode819]最常见的单词1.题目给定一个段落 (paragraph) 和一个禁用单词列表 (banned)。返回出现次数最多,同时不在禁用列表中的单词。题目保证至少有一个词不在禁用列表中,而且答案唯一。禁用列表中的单词用小写字母表示,不含标点符号。段落中的单词不区分大小写。答案都是小写字母。2.解题思路首先分析题目,得出输入和输出:输入一个字符串段落和一个字符串数组。输出字符串段落中出现次数最多, 并且不在字符串数组里的单词字符串。从题目可知这是一道分析词频的题目。因为要输出字符原创 2021-05-21 01:23:25 · 232 阅读 · 0 评论 -
【interview17.10】 主要元素:详解
interview17.10 主要元素1.题目数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。2.算法3.排序算法 + 计数器解题思路:从题干分析,我们需要找到数组中数量占比多于一半(numsSize % 2 + 1)的数字。由于数字是随机的并且取值范围较大,因此不适合使用桶计数。可以先将数组进行排序,然后遍历一遍数组,统计每种数字的数量,如果数量多于一半,就输出当前的数据即可。步骤1:使用qsort排序。初始化一个统计变量count步骤2:从数组原创 2021-05-12 02:34:39 · 94 阅读 · 0 评论 -
【Leetcode1365】有多少小于当前数字的数字:详解
[Leetcode1365] 有多少小于当前数字的数字1. 题目给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。以数组形式返回答案。2. 算法原理暴力遍历法桶计数法3. 暴力遍历从题干分析需求,步骤1. 对于单个index上的数字nums[index],都需要遍历一遍整个数组nums统计有多少原创 2021-05-12 00:41:42 · 275 阅读 · 0 评论