算法与数据结构
MindMrWang
一只程序员
展开
-
HashMap
首先来谈谈我对Hash现阶段的认识和看法: 学计算机开始最开始知道”hash“这个东西是在大一的数据结构的课上,当时因为年少不懂事,根本体会不到算法和数据结构的重要性所以基本上是水过去的,但是随着学习的深入,真正开始接触到Hash实在各大网站上面,老是会有关于HashMap的研究和讨论,同时也说到了HashMap面试经常会问,所以自己也慢慢开始关注这些和了解这些。下面就简单的说说个人对HashMa原创 2017-10-20 15:42:36 · 188 阅读 · 0 评论 -
反转单向链表(每日一道算法题)
package LinkedList;/** * @author:MindMrWang *2017年12月3日 *:function:反转单向链表 */public class reverseList { public static Node getReverseList(Node head) { Node pre = null;//用来存储下反转后的第一个节点原创 2017-12-03 10:21:37 · 252 阅读 · 0 评论 -
删除链表的中间节点(每日一道算法题)
题目:删除一个链表的中间节点,当链表只有一个节点的时候或者head节点为空的时候返回head,当链表有两个节点的时候删除第一个节点,当链表有三个节点的时候删除第二个节点,当链表有四个节点的时候删除第二个节点,当链表有五个节点的时候删除第三个节点……分析:一个链表长度每增加二,要删除的节点就后移一个节点,要删除一个节点需要知道它的前一个节点。Code:public static Node remove原创 2017-12-02 13:08:42 · 999 阅读 · 0 评论 -
用栈实现队列(每日一道算法题)
用两个栈实现队列,支持列的基本操作(add,poll,peek)package stack;import java.util.Stack;/** * @author:MindMrWang *2017年11月14日 *要求:*用两个栈实现队列,支持列的基本操作(add,poll,peek)* *:function:用两个栈实现一个队列 *可以将一个栈设为主栈,另外一个栈设置为传输栈,先将数放原创 2017-11-22 15:17:59 · 210 阅读 · 0 评论 -
实现能够返回最小值元素的栈(每日一道算法题)
package stack;import java.util.Stack;/** * @author:MindMrWang *2017年11月11日 *:function:实现一个特殊的栈,在实现栈基本功能的基础上,再返回栈中最小元素的操作 * pop push getMin 时间复杂度都是O(1),实现栈的类型可以使用现成的栈结构。 */public class My原创 2017-11-11 17:34:52 · 327 阅读 · 0 评论 -
删除链表的倒数第K个节点(每日一道算法题)
单向链表,删除它的倒数第K个节点//节点类package LinkedList;/** * @author:MindMrWang *2017年11月22日 *:function:链表节点 */public class Node { public int value; public Node next; public Node() { } public原创 2017-11-22 11:20:30 · 330 阅读 · 0 评论 -
猫狗算法(每日一道算法题)
package DogAndCatQueue;/** * @author:MindMrWang *2017年11月16日 *:function: */public class Pet { String type; public Pet(String type) { this.type=type; } public String getPetTy原创 2017-11-16 08:56:54 · 1497 阅读 · 0 评论 -
打印两个有序链表的公共部分(每日一道算法题)
题目: 有两个有序链表的头指针head1,head2,打印这两个链表的公共部分: Node节点:package LinkedList;/** * @author:MindMrWang *2017年11月21日 *:function:链表节点 */public class Node { public int value; public Node next; pub原创 2017-11-21 10:53:35 · 429 阅读 · 0 评论 -
构造数组的MaxTree(每日一道算法题)
题目:给一个数组(无重复的数字),构造一个二叉树,数组的每一个值对应一个二叉树节点。头结点是最大值。package Tree;import java.util.HashMap;import java.util.Stack;/** * @author:MindMrWang *2017年11月20日 *:function:构造数组的MaxTree */public class MaxTree原创 2017-11-20 11:53:07 · 455 阅读 · 0 评论 -
用递归函数和栈操作逆序一个栈(每日一道算法题)
本题考查栈的操作和递归的设计。 我们需要设计出两个函数: ①将Stack栈底元素移除并返回 ②逆序一个栈package stack;import java.util.Stack;public class RecurrenceStack { public static int getAndRemoveLastElement(Stack<Integer> stack) {原创 2017-11-15 09:39:10 · 232 阅读 · 0 评论 -
生成窗口最大数值(每日一道算法题)
题目: 有一个整型数组arr,和一个大小为w的窗口从数组的最左边滑到最右边,数组每次向右边滑动一个位置。 例如[4,3,5],4,4,3,6,7 此时的窗口为3,当向右移动一个位置时即4,[3,5,4],4,3,6,7 一直到4,3,5,4,4,[3,6,7]这样 所以一个为n大小的数组,w为窗口大小,则一共产生n-w+1个窗口最大值。 给出一个数组arr,和w大小的窗口,求每个窗口下的原创 2017-11-19 16:13:14 · 357 阅读 · 0 评论 -
用栈求解汉诺塔问题(每日一道算法题)
今天的题目有点难,所以只理解了一点,但是迫于每天都要发一篇算法题,还是将我理解的部分贴出来:首先,如果只剩最上层的塔需要移动,则有如下处理: 1.如果希望从“左”移到“中”,打印“Move 1 from lef to mid”. 2.如果希望从“中”移到“左”,打印“Move 1 from mid to left”. 3.如果希望从“中”移到“右”,打印“Move 1 from mid to原创 2017-11-18 16:59:02 · 1625 阅读 · 0 评论 -
用一个栈实现另一个栈的排序(每日一道算法题)
要求:不能使用其他数据结构,只能使用一个栈加一个新的变量,实现对一个整数类型的栈排序。package stack;import java.util.Stack;/** * @author:MindMrWang *2017年11月17日 *:function:利用一个辅助栈和一个变量将一个栈从顶到底从大到小排序 */public class sortStackByStack { pu原创 2017-11-17 16:57:03 · 864 阅读 · 1 评论 -
java实现二叉树
学了一下使用java实现二叉树,以下是实现的代码,仅供参考。先创建一个节点类:package tree;public class TreeNode { private Object value; private TreeNode leftNode; private TreeNode rightNode; public Object getValue() {原创 2017-09-14 17:06:09 · 168 阅读 · 0 评论 -
判断一个链表是否回文(每日一道算法题)
回文:就是正序输出和逆序输出的顺序一致。 给出了两种方式(原来有三种,第三种太复杂,被我pass了)package LinkedList;import java.util.Stack;/** * @author:MindMrWang *2017年12月4日 *:function: */public class isPalindrome { public static void m原创 2017-12-04 10:59:38 · 290 阅读 · 0 评论