![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
LB_AUTO
这个作者很懒,什么都没留下…
展开
-
leetcode 004. 寻找两个正序数组的中位数 (c++超详细解法)
给定两个大小分别为 和 的正序(从小到大)数组 和 。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 。**输入:**nums1 = [1,3], nums2 = [2]**输出:**2.00000**解释:**合并数组 = [1,2,3] ,中位数 2**输入:**nums1 = [1,2], nums2 = [3,4]**输出:**2.50000**解释:**合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5提示:处理逻辑:因为 nums1原创 2022-06-26 23:33:40 · 1141 阅读 · 1 评论 -
c++筛选方法实现与性能优化实例
c++筛选方法实现与性能优化实例实现 task1() 这个函数,它把 rows 中所有满足 b >= 10 && b < 50 并且 a == 1000 || a == 2000 || a == 3000 的行的内容都打印到终端#include <iostream>#include <vector>#include <algorithm>using namespace std;typedef struct Row{int原创 2021-12-05 17:29:02 · 2092 阅读 · 0 评论 -
双向链表排序 c++
双向链表排序 c++#include <iostream>using namespace std;//节点类型的定义typedef struct node{ int data; node *pre; node *next; node(int _data) : data(_data), pre(NULL), next(NULL) { }} Node;void TwoWayBubble(Node *&L);void Cre原创 2021-11-24 22:20:51 · 1747 阅读 · 0 评论 -
679. 24 点游戏 c++解法 回溯
679. 24 点游戏 c++解法 回溯题目描述解法题目描述链接:https://leetcode-cn.com/problems/24-game你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 -原创 2021-11-13 21:30:21 · 3583 阅读 · 0 评论 -
402. 移掉 K 位数字 c++
402. 移掉 K 位数字题目描述解法题目描述给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。示例 1 :输入:num = “1432219”, k = 3输出:“1219”解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。示例 2 :输入:num = “10200”, k = 1输出:“200”解释:移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。原创 2021-10-16 22:25:48 · 381 阅读 · 0 评论 -
394. 字符串解码 c++
394. 字符串解码题目描述解法题目描述给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。示例 1:输入:s = “3[a]2[bc]”输出:“a原创 2021-10-16 21:39:00 · 745 阅读 · 0 评论 -
1128. 等价多米诺骨牌对的数量
1128. 等价多米诺骨牌对的数量题目描述解法题目描述给你一个由一些多米诺骨牌组成的列表 dominoes。如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 ac 且 bd,或是 ad 且 bc。在 0 <= i < j < dominoes.length 的前提下,找出满足 dominoes[i] 和 domin原创 2021-10-13 21:12:34 · 115 阅读 · 0 评论 -
665. 非递减数列 c++
665. 非递减数列题目描述解法题目描述给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。示例 1:输入: nums = [4,2,3]输出: true解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。示例 2:输入: nums = [4,2,1]输出: fals原创 2021-10-12 22:59:17 · 341 阅读 · 0 评论 -
147. 对链表进行插入排序 c++
147. 对链表进行插入排序题目描述解法题目描述对链表进行插入排序。插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。示例 1:输入: 4->2-原创 2021-10-11 23:09:36 · 1101 阅读 · 0 评论 -
078. 合并排序链表 c++
078. 合并排序链表题目描述解法题目描述给定一个链表数组,每个链表都已经按升序排列。请将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例 2:输原创 2021-10-09 23:25:39 · 443 阅读 · 0 评论 -
029. 排序的循环链表 C++
029. 排序的循环链表题目说明给定循环升序列表中的一个点,写一个函数向这个列表中插入一个新元素 insertVal ,使这个列表仍然是循环升序的。给定的可以是这个列表中任意一个顶点的指针,并不一定是这个列表中最小元素的指针。如果有多个满足条件的插入位置,可以选择任意一个位置插入新的值,插入后整个列表仍然保持有序。如果列表为空(给定的节点是 null),需要创建一个循环有序列表并返回这个节点。否则。请返回原先给定的节点。示例 1:输入:head = [3,4,1], insertVal =原创 2021-10-08 23:17:23 · 362 阅读 · 0 评论 -
链表排序算法(归并和快排)
链表排序算法(归并和快排)归并快排归并class Solution{public: ListNode *sortList(ListNode *head) { if (head == NULL || head->next == NULL) { return head; } return mergeSort(head); } ListNode *mergeSort(ListNo原创 2021-10-08 22:18:27 · 218 阅读 · 0 评论 -
C++中有几种类型的new(plain new\nothrow new\placement new)
C++中有几种类型的new在C++中,new有三种典型的使用方法:plain new,nothrow new和placement new plain new言下之意就是普通的new,就是我们常用的new,在C++中定义如下:void* operator new(std::size_t) throw(std::bad_alloc);void operator delete(void *) throw();Copy to clipboardErrorCopied因此plain new在空间分配原创 2021-08-29 11:29:18 · 740 阅读 · 0 评论