首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
数据结构+算法
Forlogen
创建于2021-07-05
订阅专栏
有关数据结构和算法的基础介绍,以及LeetCode相关题目
等 1 人订阅
共204篇文章
创建于2021-07-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
剑指offer 24 - 反转链表 - python
输入一个链表,反转链表后,输出新链表的表头。# self.# self.if pHead == None or pHead.number.append(pHead.pHead = pHead.number.cur.cur = cur.return newHead.self.sel...
剑指offer 7 - 重建二叉树 - python
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。根节点preorder[0]在中序遍历数列中的位置index,index左边的部分为左子树的中序遍历序列,index右边的为右子树的中序遍历序列。相应的在前序遍历中,从索...
剑指offer 51 - 数组中的逆序对 - python
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 根据题目描述可知,逆序对指的是数组中前一个数字大于后一个数字的组合形式。因此,对于给定的数组来说,最为暴力的...
剑指offer - 数组中只出现过一次的数字 - python
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。这道题和下面的两道题本质上是一样的,因此同样的方法仍可使用。法1: 首先看数组中有哪些数字,然后依次查找它们在数组中的个数,如果个数为1则保存,最后返回保存的结果即可。a.sort(key...
剑指offer 52 - 两个链表的第一个公共结点 - python
编写一个程序,找到两个单链表相交的起始节点。在节点 c1 开始相交。输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0)。从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。在 A 中,相交节点前有 2 个节点;在...
剑指offer 67 - 把字符串转换为整数 - python
写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该...
剑指offer 20 - 表示数值的字符串 - python
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。小数点重复出现e或E后面不是-或数...
剑指offer 50 - 字符流中第一个不重复的字符 - python
请实现一个函数用来找出字符流中第一个只出现一次的字符。这道题和剑指offer -第一个只出现一次的字符位置 - python是基本一样的,前者是返回第一个只出现一次的字符,后者是返回第一次只出现一次的字符的位置。for k, v in l.char[] chars = s.if(...
剑指offer 58 - 左旋转字符串 - python
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。限制:1 <= k < s.第K位以后的元素拼接前k位元素返回即可。
剑指offer 45 - 把数组排成最小的数 - python
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。将数组中的排列成一个最小(大)的数的基本思路是:首先将数组中的元素转换为字符串,然后看字符串拼接后的结果...
剑指offer 59 - 滑动窗口的最大值 - python
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。1≤k≤输入数组的大小。索引法: 设置两个索引start和end表示滑动窗口,然后利用max取窗口内的最大值,不断滑动直到end到达结束位置为止。results.results.
剑指offer - 求1+2+3+...+n - python
求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。return n + self.
剑指offer 57 - 和为s的连续正数序列 - python
输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。resutls.
剑指offer 53 - 数字在排序数组中出现的次数 - python
首先,看给定的数字是否在数组中存在,若不存在直接返回0。否则,使用Counter统计数组中数字和它对应出现的次数,遍历得到的字典,找到key == target对应的value返回即可。for k, v in d.
剑指offer -第一个只出现一次的字符位置 - python
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).法1: 首先找到字符串中出现过的字符,然后依次在字符串中进行查找直到找到第一个只出现一次的字符,返回它在字符串中的索引。s中的索引...
剑指offer 30 -包含main函数的栈 - python
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。minStack.minStack.minStack.minStack.min(); --> 返回 -3.minStack.minS...
剑指offer - 变态跳台阶 - python
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。[2n−1]种跳法,可以直接得到结果。0,1,2,4,8,16,……所以除了第一位外,其他位的数都是前一位的数去乘以2所得到的积。num.
剑指offer 10 - 斐波那契数列问题 - python
写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计...
剑指offer -整数中1出现的次数 - python
求出1 - 13的整数中1出现的次数,并算出100 - 1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出...
剑指offer 42 -连续子数组的最大和 - python
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。1 <= arr.第一个不为负数如果前面数的累加值加上当前数后的值会比当前数小,说明累计值对整体和是有害的;...
下一页