![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
一瓢西湖水
这个作者很懒,什么都没留下…
展开
-
算法题25
DFS:题目描述:发喜糖券原创 2020-03-17 16:40:24 · 97 阅读 · 0 评论 -
算法题24
计算:题目描述:小明给大家买糖。员工一共n人(包括小明), 糖一共k种,第i位员工最喜欢糖a_i。商店举行促销,全场糖买一送一(购买一瓶i,再赠送一瓶i)。想让所有人(包括小明)都拿到他们最喜欢的糖,需要买几瓶。第一行两个整数n,k,分别表示员工人数和糖种类数。第二行n个整数,表示i号员工最喜欢的糖种类是a_i。*/输入描述:输出描述:示例1:输入:输出: &n...原创 2020-03-17 16:37:03 · 110 阅读 · 0 评论 -
算法题24-里面3道题
计算:题目描述:求路径,DFS算法输入描述:“.”表示通,“X”表示不通输出描述:示例1:输入:5…X.XXX…输出:2 代码:import java.util.Scanner;public class Main { static int count=0; public...原创 2020-03-17 16:33:03 · 91 阅读 · 0 评论 -
算法题23
DFS:题目描述:矩阵中找字符串的可能路径输入描述:输出描述:示例1:输入:输出: 代码:import java.util.*;public class Main { static int num=0; public static void main(String[]...原创 2020-03-17 16:21:56 · 81 阅读 · 0 评论 -
算法题22
计算:题目描述:求第一个不同的字符串输入描述:输出描述:示例1:输入:输出: 代码:import java.util.Arrays;import java.util.LinkedHashMap;import java.util.Map;import java.util.Scann...原创 2020-03-17 16:17:51 · 73 阅读 · 0 评论 -
算法题21
计算:题目描述:找出每位乘积为n的最小数,如36=>49(49=36),2=>12(12=2)输入一个正整数n,返回一个最小正整数m(m至少是2位数),使得m的各位乘积等于n,例如输入36,输出49,输入100,输出455,对于某个n不存在这样的m,请返回-1输入描述:输出描述:示例1:输入:输出: &nb...原创 2020-03-17 16:13:45 · 121 阅读 · 0 评论 -
算法题20
计算:题目描述:计算数列 1,2,2,3,3,3,4,4,4,4,5……前n项的和输入描述:输出描述:示例1:输入:11输出:35 代码:import java.util.Scanner;public class vivo1 { public static void main(...原创 2020-03-17 16:08:57 · 96 阅读 · 0 评论 -
算法题LC59: decode-ways
动态规划:题目描述:一条仅包含字母‘A’-‘Z’的消息用下列的方式加密成数字‘A’ -> 1↵’B’ -> 2↵…↵’Z’ -> 26现在给出加密成数字的密文,请判断有多少种解密的方法例如:给出的密文为“12”,可以解密为"AB"(1 2) 或者"L"(12).所以密文"12"的解密方法是2种.A message containing letters from A...原创 2020-03-13 14:37:18 · 208 阅读 · 0 评论 -
图论算法 —— 图论概述
本文转载自:https://blog.csdn.net/u011815404/article/details/80313879 【概述】图是计算机中常用的一种存储结构,图论是数学的一个分支,...转载 2020-03-08 14:00:06 · 184 阅读 · 0 评论 -
图的搜索算法:BFS和DFS详解(Java实现)
本文转载自:https://blog.csdn.net/z69183787/article/details/91338143 https://www.jianshu.com/p/2226dbe...转载 2020-03-08 13:48:35 · 401 阅读 · 0 评论 -
JAVA算法:DFS算法题解两个例子(走迷宫和求排列组合数)
本文转自:https://blog.csdn.net/seagal890/article/details/79826353 ...转载 2020-03-08 13:37:56 · 795 阅读 · 0 评论 -
算法题LC105: jump-game-ii
贪心:题目描述:给出一个非负整数数组,你最初在数组第一个元素的位置数组中的元素代表你在这个位置可以跳跃的最大长度你的目标是用最少的跳跃次数来到达数组的最后一个元素的位置例如给出数组 A =[2,3,1,1,4]最少需要两次才能跳跃到数组最后一个元素的位置。(从数组下标为0的位置跳长度1到达下标1的位置,然后跳长度3到数组最后一个元素的位置)Given an array of non...原创 2020-03-05 14:15:35 · 201 阅读 · 0 评论 -
算法题LC97:maximum-subarray
贪心:题目描述:请计算给出的数组(至少含有一个数字)中具有最大和的子数组(子数组要求在原数组中连续)例如:给出的数组为[−2,1,−3,4,−1,2,1,−5,4],子数组[−2,1,−3,4,−1,2,1,−5,4],具有最大的和:6.拓展:如果你已经提出了O(n)的解决方法,请尝试使用分治算法来解决这道题。这道题分治的解法更巧妙一些。Find the contiguous sub...原创 2020-03-05 14:13:49 · 128 阅读 · 0 评论 -
算法题LC95:jump-game
贪心:题目描述:给出一个非负整数数组,你最初在数组第一个元素的位置数组中的元素代表你在这个位置可以跳跃的最大长度判断你是否能到达数组最后一个元素的位置例如A =[2,3,1,1,4], 返回 true.A =[3,2,1,0,4], 返回 false.Given an array of non-negative integers, you are initially positio...原创 2020-03-05 14:10:59 · 149 阅读 · 0 评论 -
算法题LC90:permutation-sequence
高级算法:题目描述:集合[1,2,3,…,n]一共有n!种不同的排列按字典序列出所有的排列并且给这些排列标上序号我们就会得到以下的序列(以n=3为例)“123”“132”“213”“231”“312”“321”现在给出n和k,请返回第k个排列注意:n在1到9之间The set[1,2,3,…,n]contains a total of n! unique permutat...原创 2020-03-05 14:09:04 · 123 阅读 · 0 评论 -
算法题LC88:unique-paths
动态规划:题目描述:一个机器人在m×n大小的地图的左上角(起点,下图中的标记“start"的位置)。机器人每次向下或向右移动。机器人要到达地图的右下角。(终点,下图中的标记“Finish"的位置)。可以有多少种不同的路径从起点走到终点?A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in...原创 2020-03-05 14:07:22 · 174 阅读 · 0 评论 -
算法题LC87:unique-paths-ii
动态规划:题目描述:继续思考题目"Unique Paths":如果在图中加入了一些障碍,有多少不同的路径?分别用0和1代表空区域和障碍例如下图表示有一个障碍在3*3的图中央。[↵ [0,0,0],↵ [0,1,0],↵ [0,0,0]↵]有2条不同的路径备注:m和n不超过100.Follow up for “Unique Paths”:Now consider if s...原创 2020-03-05 14:04:49 · 149 阅读 · 0 评论 -
算法题LC86:minimum-path-sum
动态规划:题目描述:给定一个由非负整数填充的m x n的二维数组,现在要从二维数组的左上角走到右下角,请找出路径上的所有数字之和最小的路径。注意:你每次只能向下或向右移动。Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes...原创 2020-03-05 14:03:04 · 186 阅读 · 1 评论 -
算法题LC79:climbing-stairs
动态规划:题目描述:你在爬楼梯,需要n步才能爬到楼梯顶部每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?You are climbing a stair case. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct way...原创 2020-03-05 13:59:43 · 149 阅读 · 0 评论 -
算法题LC76:edit-distance
动态规划:题目描述:给定两个单词word1和word2,请计算将word1转换为word2至少需要多少步操作。你可以对一个单词执行以下3种操作:a)在单词中插入一个字符b)删除单词中的一个字符c)替换单词中的一个字符Given two words word1 and word2, find the minimum number of steps required to convert...原创 2020-03-05 13:58:09 · 155 阅读 · 0 评论 -
算法题LC73:minimum-window-substring
贪心:题目描述:给出两个字符串S和T,要求在O(n)的时间复杂度内在S中找出最短的包含T中所有字符的子串。例如:S =“ADOBECODEBANC”T =“ABC”找出的最短子串为"BANC".注意:如果S中没有包含T中所有字符的子串,返回空字符串 “”;满足条件的子串可能有很多,但是题目保证满足条件的最短的子串唯一。Given a string S and a string ...原创 2020-03-05 13:56:11 · 623 阅读 · 0 评论 -
算法题LC64:maximal-rectangle
贪心:题目描述:给出一个只包含0和1的二维矩阵,找出最大的全部元素都是1的长方形区域,返回该区域的面积。Given a 2D binary matrix filled with 0’s and 1’s, find the largest rectangle containing all ones and return its area.输入描述:输出描述:示例1:输入:输出:&n...原创 2020-03-05 13:54:17 · 338 阅读 · 0 评论 -
算法题LC62:scramble-string
字符串,动态规划:题目描述:题目给出一个字符串s1,我们可以用递归的方法将字符串分成两个非空的子串来将s1表示成一个二叉树下面是s1=“great”的一种二叉树的表现形式:great↵ / ↵ gr eat↵ / / ↵g r e at↵ / ↵ a t将字符串乱序的方法是:选择任意的非叶子节点,交换它的两个...原创 2020-03-05 13:52:33 · 192 阅读 · 0 评论 -
算法题LC60:gray-code
动态规划:题目描述:格雷码是一种二进制编码系统,如果任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code)。给定一个非负整数n,表示代码的位数,打印格雷码的序列。格雷码序列必须以0开头。例如:给定n=2,返回[0,1,3,2]. 格雷码的序列为:00 - 0↵01 - 1↵11 - 3↵10 - 2注意:对于一个给定的n,格雷码的序列不一定是唯一的,例如...原创 2020-03-05 13:49:32 · 179 阅读 · 0 评论 -
算法题LC58:subsets-ii-DFS算法
动态规划:题目描述:给出一个可能包含重复元素的整数集合S,返回该整数集合的所有子集。注意:你给出的子集中的元素要按非递增的顺序排列给出的解集中不能包含重复的子集例如:如果S =[1,2,2], 给出的解集应该是:[↵ [2],↵ [1],↵ [1,2,2],↵ [2,2],↵ [1,2],↵ []↵]Given a collection of integers tha...原创 2020-03-05 13:46:25 · 170 阅读 · 0 评论 -
算法题LC52:interleaving-string
字符串,动态规划:题目描述:给出三个字符串s1, s2, s3,判断s3是否可以由s1和s2交织而成。例如:给定s1 =“aabcc”,s2 =“dbbca”,如果s3 =“aadbbcbcac”, 返回true如果s3 =“aadbbbaccc”, 返回falseGiven s1, s2, s3, find whether s3 is formed by the interle...原创 2020-03-05 13:44:32 · 139 阅读 · 0 评论 -
算法题LC46:distinct-subsequences
字符串,动态规划:题目描述:给定一个字符串S和一个字符串T,计算S中的T的不同子序列的个数。字符串的子序列是由原来的字符串删除一些字符(也可以不删除)在不改变相对位置的情况下的剩余字符(例如,"ACE"is a subsequence of"ABCDE"但是"AEC"不是)例如:S =“rabbbit”, T =“rabbit”返回3Given a string S and a st...原创 2020-03-05 13:41:56 · 105 阅读 · 0 评论 -
算法题LC41:triangle
动态规划:题目描述:给出一个三角形,计算从三角形顶部到底部的最小路径和,每一步都可以移动到下面一行相邻的数字,例如,给出的三角形如下:[↵ [2],↵ [3,4],↵ [6,5,7],↵ [4,1,8,3]↵]最小的从顶部到底部的路径和是2 + 3 + 5 + 1 = 11。注意:如果你能只用O(N)的额外的空间来完成这项工作的话,就可以得到附加分,其中N是三角形...原创 2020-03-05 13:39:31 · 223 阅读 · 0 评论 -
算法题LC19:palindrome-partitioning-ii-动态规划
动态规划:题目描述:给出一个字符串s,分割s使得分割出的每一个子串都是回文串计算将字符串s分割成回文分割结果的最小切割数例如:给定字符串s=“aab”,返回1,因为回文分割结果[“aa”,“b”]是切割一次生成的。Given a string s, partition s such that every substring of the partition is a palindrom...原创 2020-03-05 13:35:39 · 114 阅读 · 0 评论 -
算法题LC17:gas-station
贪心:题目描述:环形路上有n个加油站,第i个加油站的汽油量是gas[i].你有一辆车,车的油箱可以无限装汽油。从加油站i走到下一个加油站(i+1)花费的油量是cost[i],你从一个加油站出发,刚开始的时候油箱里面没有汽油。求从哪个加油站出发可以在环形路上走一圈。返回加油站的下标,如果没有答案的话返回-1。注意:答案保证唯一。There are N gas stations alon...原创 2020-03-05 13:33:25 · 146 阅读 · 0 评论 -
算法题LC16:candy
动态规划:题目描述:有N个小朋友站在一排,每个小朋友都有一个评分你现在要按以下的规则给孩子们分糖果:每个小朋友至少要分得一颗糖果分数高的小朋友要他比旁边得分低的小朋友分得的糖果多你最少要分发多少颗糖果?There are N children standing in a line. Each child is assigned a rating value.You are givi...原创 2020-03-05 13:30:42 · 214 阅读 · 0 评论 -
算法题LC13:copy-list-with-random-pointer
链表:题目描述:现在有一个这样的链表:链表的每一个节点都附加了一个随机指针,随机指针可能指向链表中的任意一个节点或者指向空。请对这个链表进行深拷贝。A linked list is given such that each node contains an additional random pointer which could point to any node in the list...原创 2020-03-05 13:25:32 · 173 阅读 · 0 评论 -
算法题LC12:word-break
动态规划:题目描述:给定一个字符串s和一组单词dict,判断s是否可以用空格分割成一个单词序列,使得单词序列中所有的单词都是dict中的单词(序列可以包含一个或多个单词)。例如:给定s=“leetcode”;dict=[“leet”, “code”].返回true,因为"leetcode"可以被分割成"leet code".Given a string s and a diction...原创 2020-03-05 13:23:39 · 166 阅读 · 1 评论 -
算法题LC10:linked-list-cycle
链表:题目描述:判断给定的链表中是否有环扩展:你能给出不利用额外空间的解法么?Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?输入描述:输出描述:示例1:输入:输出: &n...原创 2020-03-05 13:21:43 · 103 阅读 · 0 评论 -
算法题LC8:reorder-list
链表:题目描述:将给定的单链表L: L 0→L 1→…→L n-1→L n,重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→…要求使用原地算法,并且不改变节点的值例如:对于给定的单链表{1,2,3,4},将其重新排序为{1,4,2,3}.Given a singly linked list L: L 0→L 1→…→L n-1→L n,reorder it ...原创 2020-03-05 13:19:24 · 145 阅读 · 0 评论 -
算法题LC3:max-points-on-a-line
穷举:题目描述:对于给定的n个位于同一二维平面上的点,求最多能有多少个点位于同一直线上Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.输入描述:输出描述:示例1:输入:输出:  ...原创 2020-03-05 13:06:39 · 176 阅读 · 0 评论 -
算法题LC2:evaluate-reverse-polish-notation
从尾到头打印链表:题目描述:计算逆波兰式(后缀表达式)的值运算符仅包含"+","-","“和”/",被操作数可能是整数或其他表达式例如:[“2”, “1”, “+”, “3”, ""] -> ((2 + 1) * 3) -> 9↵ [“4”, “13”, “5”, “/”, “+”] -> (4 + (13 / 5)) -> 6Evaluate the val...原创 2020-03-05 13:04:23 · 171 阅读 · 0 评论 -
算法题LC1:minimum-depth-of-binary-tree
从尾到头打印链表:题目描述:求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the n...原创 2020-03-05 12:59:29 · 129 阅读 · 0 评论 -
算法题JO14:链表中倒数第k个结点
从尾到头打印链表:题目描述:输入一个链表,输出该链表中倒数第k个结点。输入描述:输出描述:示例1:输入:输出: 代码:/*public class ListNode { int val; ListNode next = null; ListNode(int ...原创 2020-03-05 12:47:44 · 113 阅读 · 0 评论 -
算法题JO13:调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面:题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。输入描述:输出描述:示例1:输入:输出: 代码:public class S...原创 2020-03-05 12:45:09 · 114 阅读 · 0 评论