剑指offer
刷题
小小酒馆的掌柜
这个作者很懒,什么都没留下…
展开
-
剑指offer 58-II.左旋转字符串
58-II.左旋转字符串 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 实例: 输入: s = "abcdefg", k = 2 输出: "cdefgab" 输入: s = "lrloseumgh", k = 6 输出: "umghlrlose" 思路分析: 将字符串转换为字符数组,遍历后面的数组,先追加到StringBuilder中;遍历前面的数原创 2021-10-15 10:33:44 · 189 阅读 · 0 评论 -
剑指offer 05.替换空格
05.替换空格 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 思路分析: 将字符串转换为字符数组,遍历数组,判断每一个字符,追加到StringBuilder中,再将StringBuilder转换为String。 代码: class Solution { public String replaceSpace(String s) { StringBuilder sb=原创 2021-10-15 10:32:49 · 84 阅读 · 0 评论 -
剑指offer 24. 反转链表
24. 反转链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 实例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路分析: 1、新建输出链表ListNode pre = null,每遍历一次链表,就修改输入链表的链头节点的指向; 2、第一次遍历,通过暂存链表temp处理,将输入链表ListNode head的链头节点1指向null,并将head赋值给pre,此时输原创 2021-10-12 20:41:20 · 53 阅读 · 0 评论 -
剑指offer 06. 从尾到头打印链表
06. 从尾到头打印链表 题目: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 实例: 输入:head = [1,3,2] 输出:[2,3,1] 思路一分析: 用两次循环遍历实现 返回是一个数组,则第一次循环遍历链表确定链表的元素个数,用来确定创建的数组的大小。 数组中的元素是链表中的元素反转的,所以第二次循环遍历将元素填充到数组时,数组时从后往前填值。 代码一: /** * 链表的定义 * public class ListNode { * int val; *原创 2021-10-12 17:52:59 · 144 阅读 · 0 评论 -
剑指offer 09. 用两个栈实现队列
09. 用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 实例1 输入: ["CQueue","appendTail","deleteHead","deleteHead"] [[],[3],[],[]] 输出:[null,null,3,-1] 实例2 输入: ["CQueue","deleteHead","appen原创 2021-10-12 16:50:22 · 58 阅读 · 0 评论 -
剑指offer 30.包含min函数的栈
30、包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min(); --> 返回 -3. minStack.pop(); minStack.top(); -->转载 2021-10-12 15:25:57 · 130 阅读 · 0 评论