一、题目 输入一个链表,输出该链表中倒数第k个结点。 二、思路 两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然…
分类:剑指offer
剑指offer三十五之数组中的逆序对
一、题目 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007 二…
剑指offer五十之数组中重复的数字
一、题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3…
剑指offer五十四之字符流中第一个不重复的字符
一、题目 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字…
回文链表
回文链表其实也是链表反转的变形;也可以用栈实现。 //对于一个链表,请设计一个时间复杂度为O(n), 额外空间复杂度为O(1)的算法,判断其是否为回文结构。 //给定一个链表的头指针A,请返回…
剑指offer三十一之连数中1出现的次数(从1到n整数中1出现的次数
一、题目 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你…
剑指offer解题报告(Java版)——翻转单词顺序 左旋字符串 42
引言 这种翻转的问题会遇到很多,其实就是一个倒序的问题,对于第一个题只是想翻转单词的顺序,而并不想把整个字符串翻转了,如果完全翻转的话,比如I am a stude…
ArrayList底层原理解析
原文地址: https://jygod.github.io/2018/04/15/ArrayList%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90/ 初始化 …
剑指offer三十四之第一个只出现一次的字符
一、题目 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置 二、思路 详见代码注释。 三、代码 import java.util.Linked…
剑指offer二十二之从上往下打印二叉树
一、题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 二、思路 二叉树的层次遍历,可以借助队列实现。具体思路详见注释。 三、代码 import java.util.…
二叉树的遍历游走
前序,中序,后序遍历的非递归实现。 层次遍历,从上到下或从下到上,从左到右或从右到左,只输出叶子节点,只输出某一层等等。 1、代码: 1 void PreOrder(BinaryTreeNode* root) 2 { 3…
【剑指offer】31-40题
31.求连续子数组(包含负数)的最大和 思路:若和小于0,则将最大和置为当前值,否则计算最大和。 代码实现: public int FindGreatestSumOfSubArray(int[] array) { if …