简单算法
小王不是胖虎
多读书多看报,少吃零食多睡觉
展开
-
【小王的算法练习】LeetCode: 20.有效的括号
【简单】 LeetCode: 20.有效的括号 今天刷了一个 LeetCode 题目,就是简单的括号匹配题目,之前用数组做过一次,这次用栈来做一下。体会一下栈的使用方法。 首先我们要知道栈的特征:后进先出,我个人喜欢把它比作一个只有一边开口的玻璃管。因为只有一端开口,所以每次从玻璃管内取东西都要取出最靠近管口的那个。 我们来看一下题目: 我们可以看到,这个题目的描述有点符合我们刚才所说的栈...原创 2019-06-12 16:22:43 · 166 阅读 · 0 评论 -
【剑指offer题目4】二维数组优化查找数字
二维数组优化查找数字 1.题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成这样一个函数,输入这样的一个二维数组和一个整数,判断数组中是否包含该整数。 2.问题分析 从右上角开始比较,然后逐渐缩小查找范围。如下图所示: 代码如下: public static boolean select(int [][] a,int number) {...原创 2019-07-19 18:39:24 · 194 阅读 · 0 评论 -
【剑指offer面试题8】二叉树的下一个节点
二叉树的下一个节点 一.题目要求: 给定一棵二叉树和其中一个节点,如何找出中序遍历的下一个节点?树的节点除了分别有指向左右节点的指针外,还有一个指向父节点的指针。 二.栽树 public class BinaryTreeNode { char value; BinaryTreeNode fatherNode; BinaryTreeNode leftNode; BinaryTreeNode...原创 2019-08-02 18:16:26 · 208 阅读 · 0 评论 -
【剑指offer题目5】优化替换空格
优化替换空格 1.题目描述: 请实现一个函数,把字符串中的每一个空格替换成“%20”。例如,输入“ we are happy”,则输出”we20%are20%happy“。 2.问题分析: 普通的解法:扫描这个字符串碰到空格以后将后面的字符串向后移三个单位长度,然后填入所要求的“20%”。空间复杂度为O(n^2) **优化解法:**先扫描这个字符串,数出其中空格的个数,然后算出最后应该的字符串的长...原创 2019-07-31 10:40:21 · 109 阅读 · 0 评论 -
【剑指offer题目3】数组中重复的数字
数组中重复的数字 1.题目描述: 在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了L次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数且2, 3, 1, 0, 2, 5, 3,那么对应的输出是重复的数字2或者3 2.问题分析: 优化思路: 让每个数字出现在对应的下标处,当后面的数字与前面的相同下标的数字相同...原创 2019-07-31 11:12:02 · 121 阅读 · 0 评论 -
【剑指offer面试题9】用两个栈实现队列和用两个队列实现栈
用两个栈实现队列 关键想法: 插入时: 只向栈1顶部插入 删除时: 如果栈2内有元素,就优先弹出栈2的栈顶元素; 否则将栈1内元素依次出栈压入栈2,然后再弹出栈2的栈顶元素 实例代码: public class Test9 { Stack<Character> stack1; Stack<Character> stack2; public Test9() { //...原创 2019-08-04 18:41:41 · 229 阅读 · 0 评论 -
【剑指offer题目6】从尾到头打印链表
从尾到头打印链表 1.题目要求: 输入一个链表的头结点后,从尾到头反过来打印出每个节点的值。 2.问题分析: 这个问题我们分为两点: 要有一个定义好的链表 要给链表逆序输出 3.开始干 3.1定义链表 public class ListNode { public String value; public ListNode next; public ListNode(String d...原创 2019-07-31 17:59:28 · 201 阅读 · 0 评论 -
【剑指offer7】重建二叉树
重建二叉树 一.构造二叉树数原创 2019-08-01 18:46:58 · 147 阅读 · 0 评论