leetcode
奈斯Ekko
这个作者很懒,什么都没留下…
展开
-
数据结构和算法:实现LRU缓存机制
题目题目连接运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用)缓存机制。它应该支持以下操作:获取数据get和写入数据put获取数据get(key):如果密钥存在缓存中,则获取密钥的值(总是正数),则返回-1;写入数据put(key,value):如果密钥不存在,则写入其数据值,当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数据,从而为新的数据值留出空间。在...原创 2020-02-27 11:18:19 · 814 阅读 · 0 评论 -
数据结构和算法:冒泡、选择、插入、归并及快排的Java实现
package Sort;import java.util.ArrayList;import java.util.Arrays;public class Sort { //交换元素 public static void swap(int [] arr, int i, int j){ int tmp = arr[i]; arr[i] = ar...原创 2019-12-09 14:44:59 · 206 阅读 · 0 评论 -
数据结构和算法:二叉树的前序、中序、后序、层次遍历(递归/非递归)
目录一、递归实现1、前序遍历2、中序遍历3、后序遍历二、非递归实现1、层次遍历2、前序遍历3、后序遍历4、中序遍历一、递归实现1、前序遍历前序遍历的顺序是:中左右public class preOrderSolution { public void preOrder(TreeNode root){ ArrayList<Integer> res = new ArrayLis...原创 2019-12-04 11:45:12 · 515 阅读 · 0 评论 -
数据结构和算法:字符串的排列(全排列)
全排列:字符串的排列题目连接.输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解题思路1.假设给定的一些序列中第一位都不相同,那么就可以认定说这些序列一定不是同一个序列,这是一个很显然的问题...原创 2019-11-28 10:25:43 · 295 阅读 · 0 评论 -
数据结构和算法:栈的压入、弹出序列
栈的压入、弹出序列题目连接.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路借助一个辅助栈,遍历压栈顺序,先将第一个放入栈中,这里...原创 2019-11-27 11:18:56 · 277 阅读 · 0 评论 -
数据结构和算法:顺时针打印矩阵
顺时针打印矩阵题目连接.输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解题思路1.顺时针打印其实就是按圈数循环打印,一圈包含两行或者两列;2.在打印的时候会出现某一圈...原创 2019-11-26 10:29:47 · 175 阅读 · 0 评论 -
数据结构与算法:LRU缓存机制的算法实现
LRU的算法实现解法一题目连接.运用所掌握的数据结构,设计和实现一个==LRU(最近最少使用)==缓存机制,支持一下操作:1.获取数据get:如果key在缓存中,则获取秘钥的值,否则返回-1;2.写入数据put:如果秘钥不存在,则写入数据值,当到达上限时,应该删除最近最少使用的值,为新的数据流出空间。3.LRU的容量为2.解法一解题思路知识点:哈希表、双向链表,LRU缓存机制。1...原创 2019-11-25 16:22:58 · 393 阅读 · 0 评论 -
数据结构和算法:链表中倒数第k个节点
数值的整数次方题目连接.输入一个链表,输出该链表中倒数第k个结点。解题思路利用两个指针:cur和pre:1.pre先停在head处,让cur先走k个节点;2.此时让pre和cur一起向前走,直到cur==null。此时pre指向的点就是倒数第k个节点需要考虑的两个问题1.head为空,那么直接返回null;2.链表长度小于k,此时直接返回null。/*public clas...原创 2019-11-25 14:11:47 · 121 阅读 · 0 评论 -
数据结构和算法:调整数组顺序,使得奇数在偶数前面
数值的整数次方解法一解法二详细步骤可见下图题目连接.输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解法一解题思路利用额外空间,遍历整数数组,将奇数按顺序放入一个数组,将偶数按顺序放入一个数组,最后合并。public class Solution { publ...原创 2019-11-25 13:57:05 · 601 阅读 · 0 评论 -
数据结构和算法:数值的整数次方
数值的整数次方题目连接.给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponen不同时为0解题思路首先要清除进行次方运算的规则:1.如果exponent<0,那么则base需要取倒数;2.如果exponent=0,那么始终为1,3.如果exponent>0,正常运算public clas...原创 2019-11-25 10:44:06 · 130 阅读 · 0 评论 -
数据结构和算法:二进制中1的个数
二进制中1的个数解法一解法二链接: https://www.nowcoder.com/practice/8ee967e43c2c4ec193b040ea7fbb10b8?tpId=13&tqId=11164&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fq...原创 2019-11-25 10:21:52 · 156 阅读 · 0 评论 -
数据结构和算法:从尾到头打印链表
从头到尾打印链表链接: 题目连接.输入一个链表,按链表从尾到头的解题思路原地排序:1.将字符串设为足够大的容量可以放入替换后的字符串;2.从尾部开始插入;3.采用setCharAt()函数替换字符public class Solution { public String replaceSpace(StringBuffer str) { if(str == null...原创 2019-11-23 13:10:39 · 123 阅读 · 0 评论 -
数据结构和算法:剑指offer-替换空格
替换空格链接: https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423?tpId=13&tqId=11155&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ra...原创 2019-11-23 11:21:20 · 117 阅读 · 0 评论 -
数据结构和算法:搜索二位矩阵
Leetcode74:搜索二维矩阵解法一:时间复杂度O(m * n)解法二:时间复杂度O(log(m*n))链接: https://leetcode-cn.com/problems/search-a-2d-matrix/.编写一个高效的算法来判断m x n 矩阵中,是否存在一个目标值。该矩阵具有如果如下特性1,每行的整数从左到右按升序排列;2,每行的第一个整数大于前一行的最后一个整数解法...原创 2019-11-23 10:32:52 · 259 阅读 · 0 评论 -
数据结构和算法:合并两个有序数组
Leetcode88:合并两个有序数组链接: https://leetcode-cn.com/problems/merge-sorted-array/.给定两个有序证书数组nums1和nums2,将nums2合并到nums1中,使得nums1成为一个有序数组说明:1,初始化nums1和nums2的元素数量分别位m和n;2,可以假设nums1有足够多的空间来保存nums2的元素解题思路...原创 2019-11-23 09:31:48 · 264 阅读 · 0 评论