算法(leecode)
JimmyYang_MJ
小白一个,欢迎评论,建议·····
展开
-
面试编程题集锦
1. 队列最小修改来源:牛客-京东题目描述已知一个奇怪的队列,这个队列中有n个数,初始状态时,顺序是1,2,3,4,…n,是1-n按顺序排列。这个队列只支持一种操作,就是把队列中的第i号元素提前到队首(1<i<=n),如有4个元素,初始为1,2,3,4,可以将3提前到队首,得到3,1,2,4 。 现在给出一个经过若干次操作之后的序列,请你找出这个序列至少是由原序列操作了多少次...原创 2020-04-27 18:43:05 · 472 阅读 · 0 评论 -
序列 相关算法
序列和来源:牛客题目描述给出一个正整数N和长度L,找出一段长度大于等于L的连续非负整数,他们的和恰好为N。答案可能有多个,我我们需要找出长度最小的那个。例如 N = 18 L = 2:5 + 6 + 7 = 183 + 4 + 5 + 6 = 18都是满足要求的,但是我们输出更短的 5 6 7解答:通过等差数列的 N 项 和 公式...原创 2020-04-27 16:11:47 · 395 阅读 · 0 评论 -
Recursion 递归算法
1. 汉诺塔问题 public static void process(int N, String from, String to, String help) { if (N == 1){ System.out.println("Move 1 from " + from + " to " + to); } else { ...原创 2020-04-26 23:53:23 · 97 阅读 · 0 评论 -
Others 其他题目
简单题121. 买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。方法1 : 在线处理1. 遍历数组,记录当前最小值,当前值和最小值的差,就是当前最大收益时间复杂度:O(n)O(n),只需要遍历一次。空间复杂度:O...原创 2020-03-24 19:15:38 · 94 阅读 · 0 评论 -
Dynamic Programming 动态规划
买股票问题https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/solution/yi-ge-tong-yong-fang-fa-tuan-mie-6-dao-gu-piao-w-5/https://leetcode.com/problems/best-time-to-buy-and-sell-stock-wit...原创 2020-03-24 19:15:18 · 101 阅读 · 0 评论 -
Divide And Conquer 分治
简单53. 最大子列和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。方法1. 分治时间复杂度:O(NlogN)。空间复杂度:O(logN),递归时栈使用的空间方法2. 贪心(在线处理)时间复杂度:O(N)。只遍历一次数组。空间复杂度:O(1),只使用了常数空间。...原创 2020-03-22 23:47:01 · 175 阅读 · 0 评论 -
Array 数组
简单题1. 两数之和方法 1 一个简单的实现使用了两次迭代。在第 一 次迭代中,我们将每个元素的值和它的索引添加到表中。然后,在第 二 次迭代中,我们将检查每个元素所对应的目标元素(target - nums[i] )是否存在于表中。注意,该目标元素不能是 nums[i]本身!方法2:一遍哈希表事实证明,我们可以一次完成。在进行迭代并将元素插入到表中的同时,我们还会回过头来检查表中是...原创 2020-03-22 19:08:13 · 138 阅读 · 0 评论 -
String 字符串
概述:字符串问题有多种解法一般可有:利用 语言的 库函数 辅助解题利用正则表达式KMP算法1 . 简单题58. Length of Last Word - 最后一个单词的长度 /** * 方法1 : 利用库函数 split (时间复杂度较高) * String[] s1 = s.split(" +"); * ...原创 2019-12-22 13:22:20 · 104 阅读 · 0 评论 -
Two Pointers 双指针
概述:双指针问题, 即运用两个标记位进行解题一般可分为:一快一慢一前一后1 . 简单题 - 27.Remove Element 移除元素 /** 1. 删除之后相对位置不变的情况(快指针,慢指针) * 2. 对于删除后相对位置可变的情况 可以 设置 一前一后 的指针 */ public int removeElement(int[] ...原创 2019-12-19 20:42:56 · 184 阅读 · 0 评论