随笔分类 -  数据结构与算法

1 2 3 4 5 ··· 10 下一页

单链表及双向链表的代码实现-golang
摘要:单链表 package linkedList // 单链表的实现 type ListNode struct { Val int Next *ListNode } type MyLinkedList struct { size int head *ListNode } /* // initialize 阅读全文

posted @ 2021-12-14 17:44 进击的davis 阅读(75) 评论(0) 推荐(0)

面试题 05.07. 配对交换
摘要:配对交换。编写程序,交换某个整数的奇数位和偶数位,尽量使用较少的指令(也就是说,位0与位1交换,位2与位3交换,以此类推)。 示例1: 输入:num = 2(或者0b10) 输出 1 (或者 0b01) 示例2: 输入:num = 3 输出:3 提示: num的范围在[0, 2^30 - 1]之间, 阅读全文

posted @ 2021-12-10 08:37 进击的davis 阅读(76) 评论(0) 推荐(0)

大小顶堆的堆排序及堆的代码实现
摘要:1.大顶堆/大根堆-排序 python # 堆排序-大顶堆-升序排列 def bigHeapify(arr: [int], start: int, end: int) -> None: """向下调整,堆化,父节点与子节点大的比较并交换""" root = start # left child in 阅读全文

posted @ 2021-12-09 08:41 进击的davis 阅读(180) 评论(0) 推荐(0)

几个常用排序的代码实现-堆排序|快排|归并排序
摘要:以下内容来自网络,如侵权请联系我 堆排序|快排|归并排序 三种排序算法的时间复杂度:O(nlogn) 三种排序算法的空间复杂度: 快排:平均O(logn), 最坏O(n) 归并:O(n) 堆排:O(1),topK问题可能O(k) 运行时间:快排 < 归并排序 < 堆排序 算法特点: 快排:不稳定,极 阅读全文

posted @ 2021-12-08 23:30 进击的davis 阅读(283) 评论(0) 推荐(0)

十大排序算法的实现-python&golang
摘要:参考: 链接:https://leetcode-cn.com/problems/sort-an-array/solution/python-shi-xian-de-shi-da-jing-dian-pai-xu-suan-fa/ 对一个无序数组,根据某个关键字排序。 划分方法 排序算法划分方法有:稳 阅读全文

posted @ 2021-12-07 08:41 进击的davis 阅读(70) 评论(0) 推荐(0)

0127-单词接龙
摘要:字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列: 序列中第一个单词是 beginWord 。 序列中最后一个单词是 endWord 。 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典 wordList 中的单词。 给你两 阅读全文

posted @ 2021-12-06 21:52 进击的davis 阅读(81) 评论(0) 推荐(0)

0841-钥匙与房间
摘要:有 n 个房间,房间按从 0 到 n - 1 编号。最初,除 0 号房间外的其余所有房间都被锁住。你的目标是进入所有的房间。然而,你不能在没有获得钥匙的时候进入锁住的房间。 当你进入一个房间,你可能会在里面找到一套不同的钥匙,每把钥匙上都有对应的房间号,即表示钥匙可以打开的房间。你可以拿上所有钥匙取 阅读全文

posted @ 2021-12-06 21:34 进击的davis 阅读(127) 评论(0) 推荐(0)

0463-岛屿的周长
摘要:给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。 网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。 阅读全文

posted @ 2021-12-05 22:26 进击的davis 阅读(71) 评论(0) 推荐(0)

0132-分割回文串II
摘要:给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文。 返回符合要求的 最少分割次数 。 示例 1: 输入:s = "aab" 输出:1 解释:只需一次分割就可将 s 分割成 ["aa","b"] 这样两个回文子串。 示例 2: 输入:s = "a" 输出:0 示例 3: 输入:s = 阅读全文

posted @ 2021-12-05 22:24 进击的davis 阅读(52) 评论(0) 推荐(0)

0005-最长回文子串
摘要:给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" 示例 3: 输入:s = "a" 输出:"a" 示例 4: 输入:s = "ac" 输出:" 阅读全文

posted @ 2021-12-05 21:50 进击的davis 阅读(37) 评论(0) 推荐(0)

0516-最长回文子序列
摘要:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入:s = "bbbab" 输出:4 解释:一个可能的最长回文子序列为 "bbbb" 。 示例 2: 输入:s = "cbbd 阅读全文

posted @ 2021-12-05 21:27 进击的davis 阅读(45) 评论(0) 推荐(0)

0647-回文子串
摘要:给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1: 输入:s = "abc" 输出:3 解释 阅读全文

posted @ 2021-12-05 21:08 进击的davis 阅读(47) 评论(0) 推荐(0)

0072-编辑距离
摘要:给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = "horse", word2 = "ros" 输出:3 解释: horse 阅读全文

posted @ 2021-12-05 18:34 进击的davis 阅读(60) 评论(0) 推荐(0)

0583-两个字符串的删除
摘要:给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。 示例: 输入: "sea", "eat" 输出: 2 解释: 第一步将"sea"变为"ea",第二步将"eat"变为"ea" 提示: 给定单词的长度不超过50 阅读全文

posted @ 2021-12-05 17:06 进击的davis 阅读(36) 评论(0) 推荐(0)

0115-不同的子序列
摘要:给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。 字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是) 题目数据保证答案符合 32 位带符号整 阅读全文

posted @ 2021-12-05 16:45 进击的davis 阅读(52) 评论(0) 推荐(0)

0392-判断子序列
摘要:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。 进阶: 如果有大量输入的 S,称作 S1, S2, ... , Sk 其 阅读全文

posted @ 2021-12-05 16:18 进击的davis 阅读(130) 评论(0) 推荐(0)

0673-最长递增子序列的个数
摘要:给定一个未排序的整数数组,找到最长递增子序列的个数。 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7]。 示例 2: 输入: [2,2,2,2,2] 输出: 5 解释: 最长递增子序列的长度是1,并且存 阅读全文

posted @ 2021-12-05 11:32 进击的davis 阅读(81) 评论(0) 推荐(0)

0718-最长重复子数组
摘要:给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。 示例: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出:3 解释: 长度最长的公共子数组是 [3, 2, 1] 。 提示: 1 ⇐ len(A), len(B) ⇐ 1000 0 ⇐ A[i], 阅读全文

posted @ 2021-12-05 10:44 进击的davis 阅读(94) 评论(0) 推荐(0)

0674-最长连续递增子序列
摘要:给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l ⇐ i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., n 阅读全文

posted @ 2021-12-05 08:49 进击的davis 阅读(296) 评论(0) 推荐(0)

1035-不相交的线
摘要:在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i] == nums2[j] 且绘制的直线不与任何其他连线(非水平线)相交。 请注意,连线即使在端点也 阅读全文

posted @ 2021-12-04 23:36 进击的davis 阅读(109) 评论(0) 推荐(0)

1 2 3 4 5 ··· 10 下一页

导航