
算法
云飞Ran
用代码构建出一个美丽的城堡。
展开
-
斐波那契数列理解
斐波那契额数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、……,这是由数学家列昂纳多·斐波那契由兔子引入的,又称为兔子数列。斐波那契数列是我第一个入门算法,最开始经典解法是用递归的形式。//n:想要得到前几个数的和public static void fibo(int n){ if(n < 1){ return 0; } if(n == 1 || n == ...原创 2019-10-24 09:53:21 · 2950 阅读 · 0 评论 -
算法与数据结构你需要了解
数据结构分类按照存储结构来分线性结构:Array、Stack/Queue、PriorityQueue(heap)、LinkedList(single/double)非线性结构:Tree/Binary Tree、Binary Search Tree、HashTable、DisjointSet并查集、Trie字典树、Bloom Filter、LRU Cache常见算法General C...原创 2019-01-17 15:15:02 · 178 阅读 · 0 评论 -
703. Kth Largest Element in a Stream
设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。package com.zhr.heap;/** * @ Author :zhenghaoran. ...原创 2019-01-25 15:20:23 · 236 阅读 · 0 评论 -
141.Linked List Cycle
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 /** * 一个链表怎么看是否有环 * 第一种:如果一个链表一秒钟后走到了null那么就说明没有环 延迟1s * 第二种:使用一个Set数据结构,每次遍历结点的时候都添加进去,如果...原创 2019-01-21 18:27:06 · 145 阅读 · 0 评论 -
142. Linked List Cycle II
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表git源码地址:https://github.com/a947000098/algorithm-case/** * 142 ...原创 2019-01-21 18:29:30 · 155 阅读 · 0 评论 -
20. Valid Parentheses
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。package com.zhr.stack;import com.zhr.exception.CodeException;import java.util.HashMap...原创 2019-01-22 09:57:45 · 232 阅读 · 0 评论 -
24. Swap Nodes in Pairs
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 /** * 两两结点反转 1 2 3 4 变成 2 1 4 3 * @param head...原创 2019-01-22 10:00:10 · 108 阅读 · 0 评论 -
232. Implement Queue using Stacks
使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。package com.zhr.stack;import java.util.Stack;/** * @ Author :zhenghaoran. * @ Date :...原创 2019-01-23 10:04:35 · 173 阅读 · 0 评论 -
225. Implement Stack using Queues
使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空package com.zhr.queue;import java.util.LinkedList;import java.util.Queue;/** * @ Author :zhenghaoran. * @ D...原创 2019-01-23 10:08:29 · 134 阅读 · 0 评论