剑指offer
qq_43014162
这个作者很懒,什么都没留下…
展开
-
如何使用以字符为索引的数组
在做java相关的字符串问题时,遇到这行字符串各个字母出现的次数,大家都会联想到map,一个key对应一个value。其实也可以用数组去实现。这是在做剑指offer的第一个只出现一次的字符遇到的问题。看题。在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写)代码:public int ...原创 2020-02-29 23:39:40 · 1013 阅读 · 0 评论 -
Array.sort()按字典顺序排序实现
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:转化为String类型的数组,然后排序排序方法,s1+s2 和s2 + s1谁大谁往前如果不转化形态的话,需要不断判断大小,比较复杂直接放代码了:public String PrintMinNumber(in...原创 2020-02-28 20:38:28 · 1691 阅读 · 0 评论 -
递归思想进阶版-----剑指offer字符串的排列详解
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路题目要求:1.字典序 2.全排列先看字典序,Arraylist有sort方法可以实现字典排序,那只要完成一个add一个...原创 2020-02-26 11:41:13 · 154 阅读 · 0 评论 -
二叉搜索树与双向链表
解题思路:本题的本质即输出二叉搜索树的中序遍历,二叉搜索树的中序遍历就为一个排序好队列。因此目前的问题转化为:如何进行二叉搜索树的中序遍历,并将其转换为双链表分为三步:(1)找到最底层的左叶子节点,并作为双向链表的头节点。(2)对于不是头结点的点,调整链表指针, 调整为:当前节点的左节点为上一个节点;上一个节点的右节点为当前节点;上一个节点指向本节点;(3)跳转到当前节点...原创 2020-02-25 20:56:22 · 83 阅读 · 0 评论