随笔分类 - 剑指offer-python/java实现
摘要:####字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/p
阅读全文
摘要:####一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 1: 输入: [0,1,3] 输出: 2 来源:力扣(LeetCode) 链接:https://leetcode-cn
阅读全文
摘要:####统计一个数字在排序数组中出现的次数。 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 python偷鸡解法: class Solution: def search(self, nums: List[int], target: int) ->
阅读全文
摘要:####在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 示例 1: 输入:s = "abaccdeff" 输出:'b' 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/di-yi-ge-zhi-ch
阅读全文
摘要:####请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problem
阅读全文
摘要:####定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 解法:我们使用三个指针,分别指向当前遍历到的结点、它的前一个结点以及后一个结点。 在遍历的时候,做当前结点的尾结点
阅读全文
摘要:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0)
阅读全文
摘要:##把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 ###解题思路有两种
阅读全文
摘要:##输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 前序遍历的第一个值为根节点,在中序遍历中该点左侧为树的左子
阅读全文
摘要:##用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路,栈是先入后出,队列是先入先出,一个in栈用作进行入栈(push)操作,一个out栈用作进行出栈(pop)操作,入栈时元素进入in栈,在需要出栈时顺序相反,若出栈时栈内为空就返回-1,否则需要将in栈元
阅读全文
摘要:##输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 ###解答思路 从大佬Jack Cui得到启发,python直接使用列表的插入方法,每次插入数据,只插入在首位。 python # -*- coding:utf-8 -*- # class ListNode: # def __in
阅读全文
摘要:##请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 ###解答思路 此题用python解答最简单的方法是使用字符串中的自带替换方法——replace 还有一种方法则需要将在每次遍历到空格时
阅读全文
摘要:##在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 ###解答思路 该二维数组的第一行最后一列的元素很有特点,其左边的数依次小于他,其下面的数依次大于他,
阅读全文
摘要:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1: 输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 来源:力扣(LeetCode)链接
阅读全文