算法设计.

文章目录

  • 1. 贪心算法:只看当前
    • 1.1 零钱兑换问题:力扣322
  • 2. 活动选择问题
  • 3. 动态规划
    • 3.1 不同路径:
    • 3.2 0-1背包问题
    • 3.3 完全背包问题
    • 3.4 零钱兑换-动态规划
  • 4. 最长公共字串--动态规划
  • 5. 最长公共子序列
  • 6. 最长递增子序列
  • 7. 打家劫舍
  • 8. 全排列--回溯

1. 贪心算法:只看当前

1.1 零钱兑换问题:力扣322

在这里插入图片描述

用贪心算法:但有可能得到错误的解
在这里插入图片描述

public class Leetcode322 {public int coinChange(int[] coins, int amount) {int remainder = amount;int count = 0;for (int coin : coins) {while (remainder - coin > 0) {remainder -= coin;count++;}if (remainder - coin == 0) {remainder = 0;count++;break;}}if (remainder > 0) {return -1;} else {return count;}}public static void main(String[] args) {Leetcode322 leetcode = new Leetcode322();int count = leetcode.coinChange(new int[]{5, 2, 1}, 5);
//        int count = leetcode.coinChange(new int[]{25, 10, 5, 1}, 41);
//        int count = leetcode.coinChange(new int[]{2}, 3);// 问题1 没有回头,导致找到更差的解
//        int count = leetcode.coinChange(new int[]{15, 10, 1}, 21);  // 问题2 没有回头,导致无解
//        int count = leetcode.coinChange(new int[]{15, 10}, 20);  System.out.println(count);}
}

2. 活动选择问题

在这里插入图片描述
贪心选择:每次选择最早结束的活动

3. 动态规划

在这里插入图片描述

3.1 不同路径:

在这里插入图片描述

3.2 0-1背包问题

在这里插入图片描述

3.3 完全背包问题

在这里插入图片描述

3.4 零钱兑换-动态规划

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


零钱兑换变种:在这里插入图片描述
在这里插入图片描述

4. 最长公共字串–动态规划

在这里插入图片描述

5. 最长公共子序列

在这里插入图片描述
在这里插入图片描述

6. 最长递增子序列

在这里插入图片描述
在这里插入图片描述

7. 打家劫舍

在这里插入图片描述

在这里插入图片描述

8. 全排列–回溯

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513318.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android开发框架qmui,View的这些基础知识你必须要知道

今天在浏览技术新闻的时候,发现腾讯就在今天开源了一套 Android 原生的 UI 框架。你们有没有发现,腾讯特别喜欢干这种事,哪一种事呢?喜欢开源 UI 框架,小程序也是这样的。 我看到这个新闻后,第一时间就下载…

【ue5】滑铲系统蓝图笔记

大致逻辑如下: 一、导入动画 滑铲蹲待机蹲行走 导入到文件夹中 可以右键设置颜色,便于区分。 二、调整动画 1.启动根运动 启动根运动后,人物才可以位移,不然只能在原地。 打开动画序列,勾选启用根运动Enabled…

浏览器发出一个请求到收到响应步骤详解

前言 在网络通信中,浏览器向Web服务器发送HTTP请求消息的过程是一个复杂而精密的环节,涉及到URL解析、DNS解析、数据拆分、路由表规则和MAC头部添加等一系列步骤。本文将深入探讨这一过程的每个环节,帮助读者更全面地了解浏览器与Web服务器之…

【排序】详解归并排序

一、思想 归并排序的核心思想是分治法,即将大问题分解成小问题来解决,然后再将解决后的小问题的结果合并以解决原来的大问题。具体包括以下几个步骤: 分解(Divide):将原始数组不断地二分成更小的子数组&a…

LeetCode 热题 100 (尽量ACM模式刷) 持续更新!!!

LeetCode 热题 100 哈希hash 1 两数之和 /** 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。* 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案…

【OpenGL】(1) 专栏介绍:OpenGL 库 | 3D 计算机图形应用 | GPGPU 计算 | 3D 建模和 3D动画 | 渲染技术介绍

🔗 《C语言趣味教程》👈 猛戳订阅!!! 💭 写在前面:本专栏主要内容是关于 3D 计算机图形技术的学习,重点是学习与此技术相关的 3D 实时渲染 (3D real-time rendering) 技术。我们会以…

杂记-文献阅读软件彻底从Readpaper转到Zotero

主要原因 Readpaper目前免费,但是vip制度明显时刻想着如何盈利。如果功能完善也就罢了,可惜功能还不如免费的Zotero;Zotero除了没有Readpaper的AI帮读功能以外,其他功能都有;最主要原因是Readpaper居然不支持离线阅读…

YOLO算法改进Backbone系列之:RepViT

摘要:近年来,与轻量级卷积神经网络(cnn)相比,轻量级视觉变压器(ViTs)在资源受限的移动设备上表现出了更高的性能和更低的延迟。这种改进通常归功于多头自注意模块,它使模型能够学习全局表示。然而,轻量级vit和轻量级cn…

不同用户同时编辑商品资料导致的db并发覆盖

背景 这个问题的背景来源于有用户反馈,他在商品系统中对商品打的标签不见了,影响到了前端页面上商品的资料显示 不同用户编辑同一商品导致的数据覆盖问题分析 查询操作日志发现用户B确实编辑过商品资料,并且日志显示确实打上了标签&#x…

基于SpringBoot的论坛系统(附项目源码+论文)

摘要 如今的时代,是有史以来最好的时代,随着计算机的发展到现在的移动终端的发展,国内目前信息技术已经在世界上遥遥领先,让人们感觉到处于信息大爆炸的社会。信息时代的信息处理肯定不能用之前的手工处理这样的解决方法&#xf…

【项目实践】如何发掘用户隐性需求推送PUSH

1.背景 对比业界广告推荐、触达成熟的平台,例如抖音,小红书,淘宝,知乎等,都已经站在巨量数据的基础之上,具备了 “用户意图分析” 的能力,可以分析出 “用户的隐性需求”,假设我们同…

HTML5:七天学会基础动画网页8

2D缩放:scale scale(x,y) 2D缩放转换,改变元素的宽度和 高度,值为缩放的倍数。 scaleX(n) 2D缩放转换,改变元素的宽度。 scaleY(n) 2D播放转换,改变元素的高度。 跟前面提到的平移同理&#xff0…