
每日算法系列
文章平均质量分 64
Longtermevolution
人生不要太匆匆,不急,慢慢来吧
展开
-
每日算法导航
题目导航,方便回顾。1、跳跃游戏贪心2、二叉树层序遍历 层容器、递归3、二叉树的最大路径和 二叉树节点node,其参与一条路径的可能方式;最大权路径4、股票 亏赚在哪天5、N天后的房间状态...原创 2020-04-22 14:10:02 · 385 阅读 · 0 评论 -
每日算法- 贪心算法-两地调度
目录题目思路微观宏观代码复杂度题目公司计划面试 2N 人。第 i 人飞往 A 市的费用为 costs[i][0],飞往 B 市的费用为 costs[i][1]。返回将每个人都飞到某座城市的最低费用,要求每个城市都有 N 人抵达。示例:输入:[[10,20],[30,200],[400,50],[30,20]]输出:110解释:第一个人去 A 市,费用为 10。第二个人去 A 市,费用为 30。第三个人去 B 市,费用为 50。第四个人去 B 市,费用原创 2021-05-15 17:25:51 · 363 阅读 · 0 评论 -
0-1 背包问题 Java
https://blog.youkuaiyun.com/huyang0304/article/details/82286279/** * 0-1背包 * @param val 价值 * @param weight 重量 * @param W 背包容量 * @return 最优解 */ public static int knapsack(int[] val, int[] weight, int W) { int N = we.原创 2020-09-19 15:10:43 · 195 阅读 · 0 评论 -
关于JDK1.8 java HashMap的tableSizeFor的解析:一个数最近2的幂次数方法
https://zhuanlan.zhihu.com/p/134690309public static void main(String[] args) { hightwo(0); hightwo(7); hightwo(32);}private static void hightwo(int cap) { int n = cap - 1; n |= n >>> 1; n |= n >>> 2; n .原创 2020-09-19 15:09:39 · 495 阅读 · 0 评论 -
java 判断一个数是不是2的整数次幂
https://www.cnblogs.com/blog567/p/12374662.html原创 2020-09-19 15:08:39 · 238 阅读 · 1 评论 -
翻转字符串
翻转字符串https://www.cnblogs.com/taich-flute/p/10070143.htmlpackage changjian;public class reverseString { public static void main(String[] args) { String s = "do something "; System.out.println(reverseString(s)); } /** .原创 2020-09-14 21:09:29 · 138 阅读 · 0 评论 -
完全二叉树计算叶节点数目
https://www.cnblogs.com/tiffer/p/4438993.html原创 2020-09-08 17:42:48 · 365 阅读 · 0 评论 -
每日算法 - 列出24点游戏的所有解法
目录题目代码相关题目题目输入四张扑克牌,输出所有可能的形成24点的表达式。代码import java.util.HashMap;import java.util.Map;import java.util.Random;import java.util.Scanner;public class T2 { //定义随机产生的四个数 static int number[] = new int[4]; //转换后的num1,num2,num3,num4原创 2020-09-08 17:42:04 · 1447 阅读 · 0 评论 -
每日算法 - 多线程 交替输出1A2B3C4D...26Z
题目代码package com.thread;/** * 字符交替出现 */public class CharAlternately { public static void main(String[] args) { final Object o = new Object(); String[] aInt = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"}; ch...原创 2020-08-12 17:03:32 · 465 阅读 · 0 评论 -
每日算法 - 组合(数学公式 -------- c(n,k))
目录题目思路代码总结题目给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/combinations著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路...原创 2020-07-08 17:32:52 · 4501 阅读 · 0 评论 -
每日算法 - 解码方法
目录题目解题思路代码题目一条包含字母A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释:它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释:它可以解码为 "BZ" (2 26), "VF" (22 6), 或者 "BBF" (2 2 6) 。...原创 2020-07-03 18:19:41 · 342 阅读 · 0 评论 -
每日算法 - 有序矩阵中第k小的元素
题目给定一个n x n矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。示例:matrix = [ [ 1, 5, 9], [10, 11, 13], [12, 13, 15]],k = 8,返回 13。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-smallest-element-in-a-so...原创 2020-07-02 21:01:50 · 324 阅读 · 0 评论 -
每日算法 - 长度最小的子数组
目录题目思路代码总结题目给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组[4,3]是该条件下的长度最小的连续子数组。进阶:如果你已经完成了O(n) 时间复杂度的解法, 请尝试O(n log n) 时间复杂度的解法。来源:力扣(LeetCode)链...原创 2020-06-28 14:14:59 · 183 阅读 · 0 评论 -
每日算法 - 无重复字符的最长子串
目录题目解题思路代码总结完整测试代码题目给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注...原创 2020-06-20 20:26:21 · 165 阅读 · 0 评论 -
每日算法 - 设计循环队列(基础算法)
目录题目解题思路1、数组数组实现代码单链表代码(思路见链接)题目设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue原创 2020-06-19 16:15:38 · 1069 阅读 · 0 评论 -
每日算法 - 二叉树中序遍历(基础算法)
目录题目解题思路中序遍历代码递归(最基础)栈莫瑞斯总结完整测试代码题目给定一个二叉树,返回它的中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]进阶:递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal著作权归领扣...原创 2020-06-19 10:29:43 · 441 阅读 · 0 评论 -
每日算法 - 二叉树前序遍历(基础算法)
目录题目解题思路代码迭代 + 栈递归实现前序遍历(最基础)莫里斯遍历(了解)总结完整测试代码及结果题目给定一个二叉树,返回它的前序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,2,3]进阶:递归算法很简单,你可以通过迭代算法完成吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-pre...原创 2020-06-18 20:29:32 · 316 阅读 · 0 评论 -
每日算法 - 三个数之和
题目给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为: [-1, 0, 1], [-1, -1, 2]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/3sum...原创 2020-06-12 16:45:46 · 369 阅读 · 0 评论 -
每日算法 - 数字翻译成字符串
目录题目描述解题思路代码总结题目描述给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"提示:0 <= num <..原创 2020-06-10 11:25:35 · 279 阅读 · 0 评论 -
每日算法 -
目录题目解题思路代码总结题目1371. 每个元音包含偶数次的最长子字符串给你一个字符串s,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即'a','e','i','o','u' ,在子字符串中都恰好出现了偶数次。示例 1:输入:s = "eleetminicoworoep"输出:13解释:最长子字符串是 "leetminicowor" ,它包含 e,i,o各 2 个,以及 0 个 a,u 。示例 2:输入:s = "leetcodei...原创 2020-05-20 19:50:24 · 209 阅读 · 0 评论 -
每日算法 - 乘积最大子数组
题目给你一个整数数组 nums,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释:子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释:结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-s...原创 2020-05-18 14:53:52 · 184 阅读 · 0 评论 -
每日算法 - 只出现一次的数字
题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...原创 2020-05-14 15:02:22 · 221 阅读 · 0 评论 -
每日算法 - 最大正方形
目录题目解题思路代码总结题目在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximal-square著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路动态规划1、设置动态更新变量.原创 2020-05-08 20:56:59 · 577 阅读 · 0 评论 -
每日算法 - 字符串转整数
目录题目解题思路代码总结题目请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一...原创 2020-05-07 20:22:58 · 336 阅读 · 0 评论 -
每日算法 - 最低票价
目录题目解题思路代码题目在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为days的数组给出。每一项是一个从1到365的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为costs[0] 美元;一张为期七天的通行证售价为costs[1] 美元;一张为期三十天的通行证售价为costs[2...原创 2020-05-06 17:54:58 · 394 阅读 · 0 评论 -
巨坑!!! --- Scanner先输入整型再输入字符串时,字符串不能输入的问题
太坑了,笔试题本地调试死活都对,上了scanner就崩,真是够了。Scanner先输入整型再输入字符串时,字符串不能输入的问题原创 2020-04-29 18:11:42 · 296 阅读 · 0 评论 -
每日算法 - 括号生成问题
目录题目解题思路暴力法暴力法代码回溯法回溯法代码题目数字 n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ...原创 2020-04-23 11:59:04 · 458 阅读 · 0 评论 -
每日算法 - 股票价格跨度
目录题目解题思路代码题目编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度将是 [1, 1, 1, 2, 1, 4, 6]。...原创 2020-04-22 20:40:04 · 805 阅读 · 0 评论 -
每日算法 - N天后的房间状态
目录题目解题思路代码题目类似来源:leetcode房间状态问题解题思路1、房间状态会循环出现:共8间房,每个房间有两个状态,总共有2^8种状态。所以状态会形成循环;2、模拟状态:模拟每一天的状态state,每次迭代一天的情况。对于每一天,更新剩余的天数(怎么更新在3中有部分考虑); 将当天状态更新,就是state - > nextDay(state)...原创 2020-04-22 14:01:42 · 436 阅读 · 0 评论 -
每日算法 - 股票 亏赚在哪天
目录题目解题思路题目解题思路1、目前只会暴力法import java.util.LinkedList;import java.util.Scanner;public class Stock { public static void main(String[] args) { int[] price = {23,24,25,21,12,22,31,2...原创 2020-04-22 11:56:57 · 206 阅读 · 0 评论 -
每日算法 - 二叉树的最大路径和(树的最大路径和???)
今天周六,早上自然醒,这没什么,只是竟然自然醒的时间比平时闹钟还要早,真是若无闲事挂心头,便是人间好时节,心里没事才是最爽的。晚上要去建设路和同学吃饭,这是自二月份疫情开始以来第一次外出吃饭,老天保佑。所以先把每日算法干了。题目给定一个非空二叉树,返回其最大路径和。本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。...原创 2020-04-18 12:00:42 · 277 阅读 · 0 评论 -
每日算法 - 二叉树的层序遍历
目录题目解题思路代码鉴于找实习那么打脑壳,今天晚上再写一道题吧。。。题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20],...原创 2020-04-17 20:51:14 · 245 阅读 · 0 评论 -
每日算法 - 跳跃游戏
目录题目解题思路代码今天天气多云转晴。今天做了一道跳跃游戏的题,利用的是贪心思想(对于某个变量的动态更新):在遍历的过程中,根据遍历的对象不一样,判断目标值(需要动态更新的变量)是否满足更新的条件,如果满足就更新,不满足就继续遍历。并且判断是否到达了遍历结束的条件。题目给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长...原创 2020-04-17 18:06:52 · 329 阅读 · 0 评论