
数据结果与算法
祁连山牧羊人
这个作者很懒,什么都没留下…
展开
-
给定K个排好序的数组,对其进行merge,merge后的数组依旧是排好序的
输入数组如下: std::vector<std::vector<int>> vecs = {{9,8,4,4,-1},{12,4,1,-3},{13,7,2}}; 排序算法如下: std::vector<int> sortSortedVecs(std::vector<std::vector<int>> &vecs) { if(vecs.empty()){ return std::vector<原创 2021-08-01 13:17:00 · 243 阅读 · 0 评论 -
Word Ladder II
126. Word Ladder II Hard A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ... -> sk such that: Every adjacent pair of words differs by a single letter.原创 2021-07-25 14:57:18 · 257 阅读 · 0 评论 -
二叉树迭代中序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *.原创 2020-11-07 09:56:05 · 126 阅读 · 0 评论 -
数据结构与算法-优先级队列
定义 1)满二叉树:一个高为hhh的二叉树,如果其节点个数等于2h−12^h-12h−1,则是一个满二叉数。 2)完全二叉树:将满二叉数从根节点开始按层从上到下从左到右编号,如果将满二叉树编号最大的若干个(可以是0个)节点删除的话,形成的新树就是一个完全二叉树 3)大(小)根树:是这样的一颗树,树中每个节点的值都大于(小于)或等于其子节点(如果有子节点的化)的值。注意这里并没有要求是二叉树,可以多任意叉数) 4)大(小)根堆堆堆:既是大(小)根树,又是完全二叉树。注意这里必须是完全的且是二叉的树。 ...原创 2020-08-02 17:48:24 · 184 阅读 · 0 评论 -
最长回文子串--动态规划
最长回文子串–动态规划 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-palindrom...原创 2020-05-05 12:27:20 · 208 阅读 · 0 评论 -
选择排序
思想: 每次从待排序的数据中选出最小的数,将其放在已排序的数据的后面 #include <iostream> using namespace std; /** * @brief 选择排序算法。其时间复杂度为 (n-1)n/2次比较 * @param data[] 输入待排序的数据 * @param n 数组data的长度 */ void selectSort(in...原创 2020-05-01 22:49:03 · 144 阅读 · 0 评论 -
输出一个字符串所有字符的排列组合
def PermutationAndCombination(s1,s2=''): if len(s1) == 1 or len(s1) == 0: print(s2+s1) return for index in range(len(s1)): s3 = s1[0:index] + s1[index+1:len(s1)] ...原创 2019-11-27 10:45:32 · 799 阅读 · 0 评论 -
Leetcode 链表题5
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 /** * Definition for singly-linked list. ...原创 2019-09-16 22:38:07 · 181 阅读 · 0 评论 -
链表4
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右旋转 1 步: 5->1->2->3->4->NULL 向右旋转 2 步: 4->5-&...原创 2019-09-15 17:35:17 · 97 阅读 · 0 评论 -
链表题2
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 /** * Definition for singly-linked list. * struct ListNode { * ...原创 2019-09-15 16:23:55 · 163 阅读 · 0 评论 -
链表题1
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? /** * Definition for singly-linked list. ...原创 2019-09-15 16:20:14 · 143 阅读 · 0 评论 -
链表题
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 示例 : 给定这个链表:1->2->3->4->5 当 k = 2 时,应当返回: 2->1->4->3->5 当 k = 3 时,应当返回: 3->2->...原创 2019-09-15 16:16:20 · 131 阅读 · 0 评论