数据结构与算法
IT之一小佬
敲响键盘之乐,跳起程序之舞,抵达智慧之巅!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
不含特殊楼层的最大连续楼层数【数组、排序】
不含特殊楼层的最大连续楼层数【数组、排序】原创 2025-01-06 22:20:19 · 468 阅读 · 0 评论 -
完全二叉树的节点个数
数据结构:完全二叉树的节点个数原创 2024-12-31 10:43:46 · 409 阅读 · 0 评论 -
前K个高频单词(排序)
前K个高频单词(排序)原创 2023-08-30 23:03:38 · 462 阅读 · 0 评论 -
判断根结点是否等于子结点之和
判断根结点是否等于子结点之和原创 2023-08-20 11:04:46 · 357 阅读 · 0 评论 -
找出转圈游戏输家(数组计次)
找出转圈游戏输家(数组计次)原创 2023-08-16 23:56:11 · 341 阅读 · 0 评论 -
颜色分类(三指针)
颜色分类(三指针)原创 2023-07-22 09:16:10 · 258 阅读 · 0 评论 -
爬楼梯(递归、动态规划)
爬楼梯(递归、动态规划)原创 2023-07-20 21:48:27 · 677 阅读 · 0 评论 -
存在重复元素 II(滑动窗口、哈希表)
存在重复元素 II(滑动窗口、哈希表)原创 2023-07-20 00:31:08 · 273 阅读 · 0 评论 -
存在重复元素(去重、排序)
存在重复元素(去重、排序)原创 2023-07-19 23:55:04 · 253 阅读 · 0 评论 -
不邻接种花(贪心、哈希表、哈希表数组)
不邻接种花(贪心、哈希表、哈希表数组)原创 2023-04-16 11:02:21 · 531 阅读 · 0 评论 -
牛妹的字符串(删除ascii码最小的k个字母)
牛妹的字符串(删除ascii码最小的k个字母)原创 2023-04-15 23:28:39 · 1210 阅读 · 0 评论 -
字符串中第二大的数字(遍历)
字符串中第二大的数字原创 2022-12-03 18:00:53 · 606 阅读 · 0 评论 -
es获取mapping中所有的字段(回溯)
es获取mapping中所有的字段(回溯)原创 2022-12-03 15:10:29 · 1904 阅读 · 0 评论 -
子域名访问计数(哈希表、字符串、索引)
子域名访问计数(哈希表、字符串、索引)原创 2022-11-19 14:22:58 · 436 阅读 · 0 评论 -
验证IP地址(字符串分割判断、正则表达式)
验证IP地址(字符串分割判断、正则表达式)原创 2022-11-15 22:59:52 · 1582 阅读 · 0 评论 -
复原 IP 地址(回溯+剪枝)
复原 IP 地址(回溯+剪枝)原创 2022-11-14 23:39:19 · 246 阅读 · 0 评论 -
IP 地址无效化(字符串、正则)
IP 地址无效化(字符串、正则)原创 2022-11-14 22:52:26 · 358 阅读 · 0 评论 -
python实现json/字典数据中所有key路径拼接组合
python实现json/字典数据中所有key路径拼接组合原创 2022-10-29 23:58:31 · 1231 阅读 · 0 评论 -
打开转盘锁
你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 。每个拨轮可以自由旋转:例如把 '9' 变为'0','0' 变为 '9' 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 '0000' ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋...原创 2022-04-30 20:27:19 · 635 阅读 · 0 评论 -
N 皇后问题
n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示...原创 2022-04-29 22:11:36 · 3750 阅读 · 0 评论 -
重复的DNA序列
DNA序列 由一系列核苷酸组成,缩写为 'A', 'C', 'G' 和 'T'.。例如,"ACGAATTCCG"是一个 DNA序列 。在研究 DNA 时,识别 DNA 中的重复序列非常有用。给定一个表示 DNA序列 的字符串 s ,返回所有在 DNA 分子中出现不止一次的 长度为 10 的序列(子字符串)。你可以按 任意顺序 返回答案。示例 1:输入:s = "AAAAACCCCCAAAAACCCCCCAAAAAGGGTTT"输出:["AAAAACCCCC","CCCCCAAAAA".原创 2022-04-26 11:39:12 · 1084 阅读 · 0 评论 -
优美的排列
假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm(下标从 1 开始),只要满足下述条件 之一 ,该数组就是一个 优美的排列 :perm[i] 能够被 i 整除 i 能够被 perm[i] 整除给你一个整数 n ,返回可以构造的 优美排列 的 数量 。示例 1:输入:n = 2输出:2解释:第 1 个优美的排列是 [1,2]: - perm[1] = 1 能被 i = 1 整除 - perm[2] = 2 能被 i = 2 整除第 2 个优美的排...原创 2022-04-24 08:53:40 · 373 阅读 · 0 评论 -
字母大小写全排列
给定一个字符串 s ,通过将字符串 s 中的每个字母转变大小写,我们可以获得一个新的字符串。返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。示例 1:输入:s = "a1b2"输出:["a1b2", "a1B2", "A1b2", "A1B2"]示例 2:输入: s = "3z4"输出: ["3z4","3Z4"]示例代码1:【递归】class Solution(): def letterCasePermutation(self, s):原创 2022-04-23 18:10:56 · 734 阅读 · 0 评论 -
整数转罗马数字
罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。...原创 2022-04-23 16:33:31 · 309 阅读 · 0 评论 -
天弃之子(求最多的按按钮次数)
有一款游戏,过关的方式是按按钮。游戏一共有n关,每一关有a[i]个按钮,其中只有唯一一个按钮是可以通关的,按下其他的按钮游戏就会失败。好在这个游戏可以重来,而且由于设计者的疏忽,每一关的通关按钮是不变的,所以你可以记住前几关的按钮,重来时就可以直接通关。但是...你的运气似乎用在了其他地方,你使用了最多的按按钮次数才成功通关。求这个最多的按按钮次数吧!输入例子1:[1,1,4,5,1,4]输出例子1:49输入例子2:[2,2,2...原创 2022-04-23 13:04:10 · 2128 阅读 · 0 评论 -
查找首次出现三次的英文字母
给定一个英文字符串(包括空格和换行),请找出该字符串中首次出现三次的英文字母(字符需区分大小写) 。如果不存在则输出-1;输入描述:输入一个字符串,可包含数字、字母,长度不超过106 个字符输出描述:输出第一个出现三次的英文字母,不存在则输出“-1”输入例子1:i love Kingsoft Office输出例子1:f输入例子2:I love KingsoFt Office输出例子2:-1示例代码...原创 2022-04-22 18:07:48 · 1104 阅读 · 2 评论 -
二叉树的中序遍历
给定一个二叉树的根节点 root ,返回它的 中序遍历。示例 1:输入:root = [1,null,2,3]输出:[1,3,2]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[2,1]示例 5:输入:root = [1,null,2]输出:[1,2]示例代码1:# Definition for a binary tree node.原创 2021-12-25 19:16:26 · 1470 阅读 · 0 评论 -
截断句子取前k个单词
句子是一个单词列表,列表中的单词之间用单个空格隔开,且不存在前导或尾随空格。每个单词仅由大小写英文字母组成(不含标点符号)。例如,"Hello World"、"HELLO"和"hello world hello world"都是句子。给你一个句子s 和一个整数k ,请你将s截断,使截断后的句子仅含前k 个单词。返回截断s后得到的句子。示例 1:输入:s = "Hello how are you Cont...原创 2021-12-06 19:38:20 · 391 阅读 · 0 评论 -
最长回文子串
给你一个字符串s,找到s中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"示例代码1:class Solution: def longestPalindrome(self, s: str) -> str: ...原创 2021-11-21 23:14:49 · 390 阅读 · 0 评论 -
m个足球放入n个篮子中或者放苹果问题
把m个同样的足球放进n个同样的篮子里,允许有的篮子为空,问共有几种分法?例如:3, 2, 1和2, 1, 3是同一种分法。输入描述:一行两个数字n,m(1<=n<=70,1<=m<=70)用空格隔开,表示篮子数和足球数。输出描述:一个整数 x 表示不同的分法数。输入例子1:3 7输出例子1:8示例代码1:lst = input().split()n, m = int(lst[0]), int(lst[.原创 2021-11-08 13:01:42 · 660 阅读 · 0 评论 -
ab串(要求a在b的右面)
小明得到一个只包含a,b两个字符的字符串,但是小明不希望在这个字符串里a出现在b左边。现在他可以将”ab”这样的子串替换成”bba”,在原串中的相对位置不变。输出小明最少需要操作多少次才能让一个给定字符串所有a都在b的右边输入描述:一个只包含a,b字符的字符串,长度不超过100000。输出描述:最小的操作次数。结果对1000000007取模。输入例子1:ab输出例子1:1例子说明1:ab到bba输入例子2:aab...原创 2021-10-25 16:35:29 · 962 阅读 · 0 评论 -
跳跃游戏(判断是否可以跳到最后一个下标)
给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永...原创 2021-10-20 22:23:53 · 608 阅读 · 0 评论 -
单词搜索(二维字符网格中)
给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例 1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "AB...原创 2021-10-20 22:05:25 · 753 阅读 · 0 评论 -
岛屿的数量
给你一个由'1'(陆地)和'0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:1示例 2:输入:g...原创 2021-10-20 21:34:50 · 199 阅读 · 0 评论 -
接雨水问题
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9方法一:暴力(Python 超时)...原创 2021-10-18 17:02:40 · 904 阅读 · 0 评论 -
数组全排列(回溯)
数组全排列(回溯)原创 2021-09-29 21:46:00 · 1652 阅读 · 0 评论 -
栈和排序
给你一个 1 到 n的排列和一个栈,入栈顺序给定你要在不打乱入栈顺序的情况下,仅利用入栈和出栈两种操作,对数组进行从大到小排序,输出排序结果当无法完全排序时,请输出字典序最大的出栈序列复杂度要求:O(n)示例1输入:[2,1,5,3,4]返回值:[5,4,3,1,2]说明:操作 栈 结果2 入栈;[2] []1 入栈;[2\1] []5 入栈;[2\1\5] []5 出栈;[2\1] [5].原创 2021-09-03 15:38:22 · 757 阅读 · 0 评论 -
把数字翻译成字符串
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"思路分析:示例代码:def translateNum(num): s = s..原创 2021-09-03 14:50:45 · 489 阅读 · 0 评论 -
递增子序列
给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两个元素。你可以按任意顺序返回答案。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。示例 1:输入:nums = [4,6,7,7]输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]示例 2:输入:nums = [4,4,3,2,1]输出:[[4,4]]示例代码1:...原创 2021-08-31 22:31:00 · 564 阅读 · 0 评论 -
最长无重复子数组
给定一个数组arr,返回arr的最长无重复元素子数组的长度,无重复指的是所有数字都不相同。子数组是连续的,比如[1,3,5,7,9]的子数组有[1,3],[3,5,7]等等,但是[1,3,7]不是子数组示例1输入[2,3,4,5]输出4说明[2,3,4,5]是最长子数组 示例2输入[2,2,3,4,3]输出3说明[2,3,4]是最长子数组 ...原创 2021-08-31 19:04:20 · 231 阅读 · 0 评论
分享