leetcode刷题
文章平均质量分 67
Freya
这个人很懒,什么也没留下
展开
-
leetcode刷题 (9.11) 二叉树
完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。对于二叉树的所有路径中的每条路径,当遍历到叶子节点的时候为当前路径的结束。:给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。:给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。原创 2022-09-13 17:19:50 · 1201 阅读 · 0 评论 -
leetcode刷题 (9.2) 动态规划
这里,max中dp[i]是因为在内层for中dp[i]一直被赋值,每尝试一种方式,dp[i]都会被新的大值给覆盖,所以里面也要有dp[i]。:给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。dp[i]:拆分数字i,可以得到的最大乘积为dp[i]。dp[i]:1到整数i的二叉搜索树个数。确定dp数组以及下标的含义。确定dp数组以及下标的含义。原创 2022-09-05 19:24:42 · 235 阅读 · 0 评论 -
leetcode刷题 (9.1) 动态规划
定义了一个vector容器,元素类型为vector,初始化为包含m个vector对象,每个对象都是一个新创立的vector对象的拷贝,而这个新创立的vector对象被初始化为包含n个0。:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。dp[i]:表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。dp[i]:表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。注意:第一行和第一列dp都是1,只有一条路径(不是看累加的)。原创 2022-09-02 17:21:42 · 723 阅读 · 0 评论 -
牛客网 ACM 模式 输入输出
昨晚做深信服笔试,第一碰到ACM模式…结果输入输出调不明白,凉的很彻底。原创 2022-09-02 16:27:32 · 1390 阅读 · 0 评论 -
leetcode刷题 (8.31) 动态规划
某一问题有很多重叠子问题,使用动态规划是最有效的。是由前一个状态推导出来的,而是局部直接选最优的。原创 2022-08-31 21:22:56 · 83 阅读 · 0 评论 -
leetcode刷题 (8.30) 栈和队列
当数据类型并不是基本数据类型,而是自定义的数据类型时,就不能用greater或less的比较方式了,而是需要自定义比较方式。原创 2022-08-31 10:13:41 · 243 阅读 · 0 评论 -
leetcode刷题 (8.29) 栈和队列
栈和队列在STL中都不是容器,而是容器适配器。栈和队列提供push 和 pop 等接口,但不提供迭代器(iterator)。不像是set 或者map 提供迭代器iterator来遍历所有元素。原创 2022-08-30 15:38:20 · 387 阅读 · 0 评论 -
leetcode刷题 (8.26) 二叉树
二叉树可以链式存储,也可以顺序存储。链式存储方式就用指针, 顺序存储的方式用数组。原创 2022-08-27 11:54:32 · 669 阅读 · 0 评论 -
leetcode刷题 (6.1) 字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。表示在s+s中从下标开始找s字符串,返回匹配的第一个下标。若s中没有重复子字符串,只能找到第二个s,返回的刚好是s.size()。:双倍字符串法,新字符串s+s中掐头去尾后,s仍在其中,则s是由多个子串重复构成的。...原创 2022-08-26 18:21:00 · 586 阅读 · 0 评论 -
leetcode刷题 (5.31) 字符串
344题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。思路:双指针,区别于反转链表(字符串是数组,在内存中连续分布)笔记:利用Python可以同时赋值的特性,数组的swap操作可以同时赋值为什么不需要设置tmp变量来保存中间值?因为赋值操作是等号从右往左的顺序执行,单纯把数值s.size() - 1, 0 赋给 s[left], s[right],而分开操作,原创 2022-06-01 02:28:30 · 199 阅读 · 0 评论 -
leetcode刷题 (5.29) 哈希表
1. 快乐数202题目:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 =原创 2022-05-30 00:53:05 · 104 阅读 · 0 评论 -
leetcode刷题 (5.28) 哈希表
1. 有效的字母异位词242题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。输入: s = "anagram", t = "nagaram"输出: true输入: s = "rat", t = "car"输出: false思路:用一个长度为26的数组表示哈希表,s中字母在哈希表中对应位置(s[i] - ‘a’)加一,t中字母再依次减一,最后看哈希表是否全为0,否则原创 2022-05-29 00:31:57 · 97 阅读 · 0 评论 -
leetcode刷题 (5.13)链表
1. 环形链表 II142题目:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。输入:head = [3,2,0,-4], pos =原创 2022-05-13 17:17:54 · 462 阅读 · 0 评论 -
leetcode刷题 (5.12)链表
1. 链表相交面试02.07题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Intersected原创 2022-05-12 17:14:09 · 116 阅读 · 0 评论 -
leetcode刷题 (5.11)链表
1. 删除链表的倒数第N个节点19题目:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]输入:head = [1], n = 1输出:[]思路:快慢指针法,通过fast-slow=n就能通过一次遍历就找到逆序n的位置(slow所指结点)。快慢指针法可以用于对倒数第n个数操作类型笔记:注意:让fast先走和后面fast,slow一起走,要分开写在两个循环里,不然[1],1的情况就会陷入死原创 2022-05-11 17:52:29 · 181 阅读 · 0 评论 -
leetcode刷题 (5.10)链表
1. 两两交换链表中的节点24题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)输入:head = [1,2,3,4]输出:[2,1,4,3]输入:head = []输出:[]输入:head = [1]输出:[1]思路:一开始想要不设奇偶指针,后面发现没必要,只要完成一次交换后指针p往后移两位即可。C++:Python:由于Python没有设置临时结点tmp,要先步骤三,防止原步骤二断线后找不原创 2022-05-10 16:47:08 · 340 阅读 · 0 评论 -
leetcode刷题 (5.9)链表
1. 反转链表206题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]思路:改变链表指针的指向,不用重新创建一个链表,浪费内存。双指针法,递归法(与双指针一样,除了不用更新两个指针向前走)笔记:C++:从后往前迭代有点想不通,抓住:迭代函数return的是新链表的head,迭代函数调用时按从前往后的顺序不断给他喂。C++:// 双指针法class Solution {public:原创 2022-05-09 16:36:36 · 456 阅读 · 0 评论 -
leetcode刷题 (5.8)链表
1. 设计链表707题目:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点原创 2022-05-09 00:36:45 · 81 阅读 · 0 评论 -
leetcode刷题 (5.7)链表
1. 移除链表元素203题目:给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]思路:设置哑结点,这样头结点和其他结点处理一样。笔记:C++链表可以直接赋空值,也可以指向空值。// 赋空值ListNode* head = NULL;// 指向空p->next = NULL;Python:原创 2022-05-07 17:50:28 · 989 阅读 · 0 评论 -
leetcode刷题 (5.6) 数组
1. 螺旋矩阵 II59题目:给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]思路:不要去想着数学计算出第一行、第二行…的规律。直接每圈分成四块(上行,右行,下行,左行)按顺序分别赋值,然后只需知道要转几圈,每圈的长度,中心点要不要单独处理即可(这才是需要数学找规律的)。笔记:C++:offset的处理很妙,初始1因为数组起始0,第二原创 2022-05-06 19:11:49 · 735 阅读 · 0 评论 -
leetcode刷题 (5.5) 数组
1. 长度最小的子数组209题目:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。输入:target = 11, nums = [1,1,1,1,1,1原创 2022-05-06 02:00:21 · 1246 阅读 · 0 评论 -
leetcode刷题 (5.4) 数组
1. 有序数组的平方977题目:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。输入:nums = [-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为 [16,1,0,9,100]排序后,数组变为 [0,1,9,16,100]思路:左右指针比较,把平方大的结果填进新数组尾部,index向前滑笔记:vector是一个动态的序列容器,相当于一个size可变的数组。初始化向量容器://对容原创 2022-05-04 19:08:02 · 337 阅读 · 0 评论 -
leetcode刷题 (5.2) 数组
1. 二分查找704题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1思路:计算middle,原创 2022-05-04 16:10:56 · 661 阅读 · 0 评论