![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
阿提娜
你若盛开,蝴蝶自来。
展开
-
算法—动态规划简单介绍
1.动态规划的定义:动态规划是分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果呢。2.动态规划的特点:(1)把原来的问题分解成了几个相似的子问题。(2)所有的子问题都只需要解决一次。(3)储存子问题的解。3.动态规划的本质: 是对问题状态的定义和状态转移方程的定义(及状态和状态之间的递归关系)4.动态规划问题的考虑角度:(1)状态定义...原创 2022-04-24 21:05:40 · 1455 阅读 · 1 评论 -
Java解决杨辉三角问题
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。示例 1:输入: numRows = 5输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例2:输入: numRows = 1输出: [[1]]解题思路:(1)第n行恰好有n个元素(2)每一行的开头和结尾全是1(3)中间位置元素值为[i,j]=[i-1,j-1]+[i-1,j]例如下面:第.原创 2022-04-22 11:51:54 · 773 阅读 · 1 评论 -
只出现一次的数字
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,99]输出:99思路:(1)建立一个哈希表,value表示数组中的数组元素,key表示出现的次数。(2)遍历数组,若value出现过,则count + 1;若没有出现过,则count = 1;(3)遍历map集合,找到满足条件的值并输出。原创 2022-04-22 10:55:56 · 55 阅读 · 1 评论 -
贪心算法解决(分糖果问题)
class Solution { public int candy(int[] ratings) { int[] candy = new int[ratings.length]; for (int i = 0; i < candy.length; i++) { candy[i] = 1; } for (int i = 1; i < ratings.length; i++) { ...原创 2022-04-21 23:59:40 · 3265 阅读 · 1 评论 -
根据身高重建队列(贪心算法)
分析:(1) 根据所给的people数组进行排序,按照身高以降序的方式排序,若身高相同则按照k的值进行升序排列。因为高个排在前面会影响后面低个子的k值。(2)把排好的people数组中低个按照k值插入数组的下标为k的地方。class Solution { public int[][] reconstructQueue(int[][] people) { int n = people.length; int m = people[0].length;...原创 2022-04-21 22:15:17 · 204 阅读 · 1 评论