当前位置: 首页 > news >正文

【2.20】动态规划 +项目 + 存储引擎

01背包问题

现有一容量为w的背包,有3个物品,每个物品重量不同,价值不同,问,怎样装才能价值最大化?

  1. 明确dp数组含义和下标含义:dp[j]表示当前背包的最大价值。j表示背包容量。
  2. 递推公式:dp[j] = Math.max(dp[j] , dp[j - weight[i]] + values[i])。dp[j]就是不放i物品时的最大价值,dp[j - weight[i]] + values[i]就是放i物品时的最大价值。
  3. 初始化:当背包容量为0,物品最大价值也为0。dp[0] = 0。
  4. 确定遍历顺序:先遍历物品,后遍历容量。并且倒序遍历背包容量,保证每个物品只被放入一次。

LeetCode

  • leetcode416

    把数值问题换算为背包问题。

    只有确定了如下四点,才能把01背包问题套到本题上来。

    • 背包的体积为sum / 2
    • 背包要放入的商品(集合里的元素)重量为 元素的数值,价值也为元素的数值
    • 背包如果正好装满,说明找到了总和为 sum / 2 的子集。
    • 背包中每一个元素是不可重复放入。
    class Solution {public boolean canPartition(int[] nums) {/**dp[j] :元素的数值。(背包最大价值。)递推公式:dp[j] = Math.max(dp[j] , dp[j - nums[i]] + nums[i]);dp[0] = 0.遍历:外层遍历nums(物品),内层倒序遍历背包容量。*/int sum = 0;for(int i : nums){sum += i;}//不符合条件if(sum % 2 == 1)return false;int len = sum / 2;int dp [] = new int [len + 1];dp[0] = 0;for(int i = 0; i < nums.length; i ++){for(int j = len; j >= nums[i]; j --){dp[j] = Math.max(dp[j] , dp[j - nums[i]] + nums[i]);}}return dp[len] == len ? true : false;}
    }
    
  • leetcode1049

    class Solution {public int lastStoneWeightII(int[] stones) {//将石头尽量分解为重量相同的两堆,剩下的就是最小的重量。/**dp[j] 为石头的最小重量 最小容量为 sum / 2石头重量、价值为stones[i]。*/int sum = 0;for(int i : stones){sum += i;}int len = sum / 2;int dp [] = new int [len + 1];dp[0] = 0;for(int i = 0 ; i < stones.length;i ++){for(int j =  len; j >= stones[i];j --){dp[j] = Math.max(dp[j] , dp[j - stones[i]] + stones[i]);}}return sum - 2 * dp[len];}
    }
    

第五章:存储引擎(重点)

关于存储引擎的命令

  • 查看mysql提供什么存储引擎:

    show engines;
    
  • 查看默认的存储引擎:

    show variables like '%storage_engine%';
    #或
    SELECT @@default_storage_engine;
    
  • 修改默认的存储引擎

    SET DEFAULT_STORAGE_ENGINE=MyISAM;
    
  • 设置表的存储引擎

    ALTER TABLE 表名 ENGINE = 存储引擎名称;
    

引擎介绍

  • InnoDB引擎:在MySQL5.5版本之后默认使用。支持事务管理,可以确保事务的完整提交(commit)和回滚(rollback)。对比MyISAM,InnoDB写的处理效率差一些(保证事务完整性),不仅缓存索引,还缓存真实数据,对内存要求高。是处理海量数据量的最大性能设计。锁机制是行锁,操作时只锁一行,适合高并发的操作。支持外键。

  • MyISAM引擎:不支持事务、行锁、外键,并且崩溃后无法安全恢复。优点是访问快,对事务完整性没有要求或者以SELECT、INSERT为主(只读或以读为主)的应用可以使用。针对数据统计有额外的常数存储。故而 count(*) 的查询效率很高。

  • 数据文件结构:InnoDB中,.frm存储表结构。(MySQL8.0合并到.ibd).ibd存储数据和索引。MyISAM中,表名.frm 存储表结构;表名.MYD 存储数据 (MYData);表名.MYI 存储索引 (MYIndex)

  • InnoDB和MyISAM对比

在这里插入图片描述

数据字典总体流程

前端页面定位url:“/dict/findZnodes”,到web-admin(消费端)中的DictController。

DictController调用方法:

@Referenceprivate DictService dictService;@GetMapping(value = "findZnodes")//将返回值转化为JSON@ResponseBodypublic Result findByParentId(@RequestParam(value = "id", defaultValue = "0") Long id) {List<Map<String,Object>> zNodes = dictService.findZnodes(id);return Result.ok(zNodes);}

DictController中使用了dictService.findZnodes(id),在服务端service-house中,DictServiceImpl方法

@Autowiredprivate DictDao dictDao;@Overridepublic List<Map<String,Object>> findZnodes(Long id) {// 返回数据[{ id:2, isParent:true, name:"随意勾选 2"}]//根据父节点id获取子节点数据List<Dict> dictList = dictDao.findListByParentId(id);//构建ztree数据List<Map<String,Object>> zNodes = new ArrayList<>();for(Dict dict : dictList) {//判断该节点是否是父节点Integer count = dictDao.countIsParent(dict.getId());Map<String,Object> map = new HashMap<>();//获取子节点数据列表map.put("id", dict.getId());map.put("isParent", count > 0 ? true : false);map.put("name", dict.getName());zNodes.add(map);};return zNodes;}

DictServiceImpl中使用了DictDao接口,使用Mybatisde的语句映射,将DictMapper.xml与DictDao中的方法映射。

相关文章:

【2.20】动态规划 +项目 + 存储引擎

01背包问题 现有一容量为w的背包&#xff0c;有3个物品&#xff0c;每个物品重量不同&#xff0c;价值不同&#xff0c;问&#xff0c;怎样装才能价值最大化&#xff1f; 明确dp数组含义和下标含义&#xff1a;dp[j]表示当前背包的最大价值。j表示背包容量。递推公式&#xf…...

触摸屏单个按键远程控制led

一、硬件 arduino2块 淘晶驰串口屏7寸增强型带外壳1块,不支持视频音频 nRF24L0模块2块 扩展板2块 跳线若干 面包板1块 led灯1个 电阻二极管若干 下载线两个 usb转串口1个 二、实验内容 一个arduino作为触摸屏的控制器,接收触摸屏双向开关的信号,同时通过nRF24L01发送“open”…...

JVM12 class文件

1. Class 文件结构 1.1. Class 字节码文件结构 类型名称说明长度数量魔数u4magic魔数,识别Class文件格式4个字节1版本号u2minor_version副版本号(小版本)2个字节1u2major_version主版本号(大版本)2个字节1常量池集合u2constant_pool_count常量池计数器2个字节1cp_infoconstan…...

等保三级认证基本要求

一、什么是等保测评&#xff1f; 企业单位委托经公安部认证的具有资质的测评机构&#xff0c;按照管理规范和技术标准&#xff0c;对相应的测评对象&#xff08;信息系统&#xff09;的状况进行测评。 1、安全技术测评&#xff1a;包括物理安全、网络安全、主机系统安全、应用安…...

Python 基本数据类型(一)

1. 整型 整型即整数&#xff0c;用 int 表示&#xff0c;在 Python3 中整型没有长度限制。 1.1 内置函数 1. int&#xff08;num, baseNone&#xff09; int( ) 函数用于将字符串转换为整型&#xff0c;默认转换为十进制。 >>> int(123) 123 >>> int(123, …...

win10 环境变量及其作用大全

------------------------------------------------------系统变量------------------------------------------------------ ComSpec: C:\WINDOWS\system32\cmd.exe command specification 解释&#xff1a; ComSpec是Windows操作系统中的一个环境变量&#xff0c;它表示Windo…...

@Valid与@Validated的区别

1.介绍 说明&#xff1a; 其实Valid 与 Validated都是做数据校验的&#xff0c;只不过注解位置与用法有点不同。 不同点&#xff1a; &#xff08;1&#xff09; Valid是使用Hibernate validation的时候使用。Validated是只用Spring Validator校验机制使用。 &#xff08;2&…...

【LeetCode】剑指 Offer 09. 用两个栈实现队列 p68 -- Java Version

题目链接&#xff1a;https://leetcode.cn/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/ 1. 题目介绍&#xff08;09. 用两个栈实现队列&#xff09; 用两个栈实现一个队列。队列的声明如下&#xff0c;请实现它的两个函数 appendTail 和 deleteHead &#xff0c;分别…...

Java并发编程面试题——JUC专题

文章目录一、AQS高频问题1.1 AQS是什么&#xff1f;1.2 唤醒线程时&#xff0c;AQS为什么从后往前遍历&#xff1f;1.3 AQS为什么用双向链表&#xff0c;&#xff08;为啥不用单向链表&#xff09;&#xff1f;1.4 AQS为什么要有一个虚拟的head节点1.5 ReentrantLock的底层实现…...

CAS概述

目录一、CAS与原子类1.1 CAS1.2 乐观锁与悲观锁1.3 原子操作类二、 synchronized优化2.1 轻量级锁2.2 轻量级锁-无竞争2.3 轻量级锁-锁膨胀2.4 重量级锁-自旋2.5 偏向锁2.6 synchronized-其他优化一、CAS与原子类 1.1 CAS CAS&#xff08;一种不断尝试&#xff09;即Compare …...

Ansys Zemax / SPEOS | 光源文件转换器

本文解释了如何在 SPEOS 与 Zemax 之间转换二进制光源文件。 下载 联系工作人员获取附件 简介 在本文中&#xff0c;为用户提供了一组Python代码&#xff0c;用于在Zemax和SPEOS之间转换源文件。 有些光源&#xff0c;如 .IES 文件&#xff0c;可在 SPEOS 和 Zemax 中进行…...

PRML笔记2-关于回归参数w的先验的理解

接上篇&#xff0c;现在考虑给w\boldsymbol{w}w加入先验&#xff0c;考虑最简单的假设&#xff0c;也就是w\boldsymbol{w}w服从均值为0&#xff0c;协方差矩阵为α−1I\alpha^{-1}\boldsymbol{I}α−1I的高斯分布。 p(w∣α)N(w∣0,α−1I)(α2π)(M1)/2exp⁡{−α2wTw}\begin{…...

Selenium原理

我们使用Selenium实现自动化测试&#xff0c;主要需要3个东西1.测试脚本&#xff0c;可以是python&#xff0c;java编写的脚本程序&#xff08;也可以叫做client端&#xff09;2.浏览器驱动, 这个驱动是根据不同的浏览器开发的&#xff0c;不同的浏览器使用不同的webdriver驱动…...

Disconf、Apollo和Nacos分布式配置框架差异对比

差异对比表格&#xff1a; 功能点DisconfApolloNacos依赖高可用框架完全依赖于Zookeeper来实现监听拉取&#xff0c;向外提供了HTTP拉取数据接口依赖于Eureka实现内部服务发现注册&#xff0c;提供HTTP接口给Client SDK拉取监听数据内部自研实现框架高可用CAP理论偏重点Zookee…...

高新技术企业认定条件条件 高企认定要求

高新技术企业认定条件 一、成立年限&#xff1a;申报企业须注册成立365个日历天数&#xff0c;而非一个会计年度。 二、知识产权 &#xff08;1&#xff09;申报企业必须拥有在中国境内授权或审批审定的知识产权&#xff0c;且知识产权在有效保护期内。知识产权权属人应为申请企…...

华为OD机试 - 新学校选址(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】

新学校选址 题目 为了解新学期学生暴涨的问题,小乐村要建立所新学校 考虑到学生上学安全问题,需要所有学生家到学校的距离最短. 假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置, 能使得到学校到各个学生家的距离和最短 输入 第一行: 整数 n 取值范围 [1,1…...

二进制部署K8S

目录 一、环境准备 1、常见的k8s部署方式 2、关闭防火墙 3、关闭selinux 4、关闭swap 5、根据规划设置主机名 6、在master添加hosts 7、将桥接的IPv4流量传递到iptables的链 8、时间同步 二、部署etcd集群 1、master节点部署 2、查看证书的信息 2.1 创建k8s工作目…...

高效获知Activity的生命周期

Activity生命周期监听 使用 Instrumentation 对 Activity 生命周期进行监听。 优点&#xff1a; 全局仅一次反射&#xff0c;性能影响极小所有Activity的生命周期都能够被监听到由于Java的单继承&#xff0c;为了拓展性&#xff0c;可以使用装饰器模式对Instrumentation进行功…...

分析现货黄金价格一般有什么方法

分析现货黄金价格一般有什么方法呢&#xff1f;我相信很多投资者都会说&#xff0c;是技术分析。很多人并不知道技术分析是什么&#xff0c;并且技术分析是如何去分析现货黄金价格的&#xff0c;那么本文就介绍一下技术分析的主要分类。可以说&#xff0c;小编的其他文章都是以…...

Spring中的拦截器

这里写目录标题基本概念HandlerInterceptor拦截器HandlerInterceptor讲解MethodInterceptor拦截器二者的区别基本概念 在web开发中&#xff0c;拦截器是经常用到的功能。它可以帮我们预先设置数据以及统计方法的执行效率等等。 Spring中拦截器主要分两种&#xff0c;一个是Han…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

SpringAI实战:ChatModel智能对话全解

一、引言&#xff1a;Spring AI 与 Chat Model 的核心价值 &#x1f680; 在 Java 生态中集成大模型能力&#xff0c;Spring AI 提供了高效的解决方案 &#x1f916;。其中 Chat Model 作为核心交互组件&#xff0c;通过标准化接口简化了与大语言模型&#xff08;LLM&#xff0…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...