![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法练习
MIMOCH
桃李春风一杯酒,江湖夜雨十年灯,未来可期....
展开
-
二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。解题思路首先根据二叉树后序遍历的特点,左子树都小于根节点,而右子树均大于根节点从第0位开始,找到第一位比根节点大的元素,记录元素位置i,在此之前的元素都属于左子树(已经判定左子树都小于根节点)然后从i开始,判断右...原创 2019-10-15 21:19:49 · 134 阅读 · 0 评论 -
Java小练习-替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.(1) 第一种解法是重新开辟一个数组,实现相应的替换 public static int getCount(char[] arr, char src) { int count = 0; ...原创 2019-03-31 16:46:03 · 147 阅读 · 0 评论 -
剑指offer - 求1+2+3+...+n
题目描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。分析 :代码:public static int Sum_Solution(int n) { int ans = n; boolean t = ((ans != 0) && ((ans += Su...原创 2019-05-25 14:13:53 · 249 阅读 · 0 评论 -
剑指offer - 反转链表
题目描述 :输入一个链表,反转链表后,输出新链表的表头。(注意: 题目未告知无头节点还是有头节点,最终测试得知为无头节点)主要思想 :public static ListNode ReverseList(ListNode head) { if(head == null ){ return null; } if (hea...原创 2019-05-22 11:01:18 · 149 阅读 · 0 评论 -
剑指offer - 链表中倒数k个节点
题目描述:输入一个链表,输出该链表中倒数第k个结点。主要思想 :代码实现 : public static ListNode FindKthToTail(ListNode head, int k) { ListNode fast = head; ListNode slow = head; if (head == null) { ...原创 2019-05-22 11:39:50 · 134 阅读 · 0 评论 -
剑指offer - 替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思想1 .暴力破解 . 遇到空格就将后面字符全部向后移动,这样会造成重复移动的问题,时间复杂度O(n2)2.首先将字符串中的空格个数计算出来,然后将原来的字符串长度增长,从末尾开始进行遍历,遇到空格就替换,其他元素就复制,...原创 2019-05-26 15:26:57 · 178 阅读 · 0 评论 -
剑指offer -合并两个排序链表
题目描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。主要思想 : public static ListNode Merge(ListNode list1, ListNode list2) { ListNode head = null; if (list1 == null && list2 =...原创 2019-05-22 17:03:57 · 186 阅读 · 0 评论 -
剑指offer- 栈的压入.弹出序列
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)主要思想首先建立一个辅助栈,将pushA[]里面的元素压入栈中,当要压入的元素等于...原创 2019-06-07 00:47:08 · 176 阅读 · 0 评论 -
剑指offer - 用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。基本思想队列的特点是先进先出stack1用来一直添加数据,在需要pop时,将其全部转移至stack2中,此时已经将顺序调转过来了.在pop之后如果有push,还是保存到stack1中,在stack2 pop 为空后,再将其转移到stack2中. public class Solution {...原创 2019-06-03 00:28:33 · 145 阅读 · 0 评论