建设网站客户资源从渠道来,房地产公司网站建设报价方案,公司注册资金实缴后多久可以取出,上海装修公司排名202101背包问题
现有一容量为w的背包#xff0c;有3个物品#xff0c;每个物品重量不同#xff0c;价值不同#xff0c;问#xff0c;怎样装才能价值最大化#xff1f;
明确dp数组含义和下标含义#xff1a;dp[j]表示当前背包的最大价值。j表示背包容量。递推公式#xf…01背包问题
现有一容量为w的背包有3个物品每个物品重量不同价值不同问怎样装才能价值最大化
明确dp数组含义和下标含义dp[j]表示当前背包的最大价值。j表示背包容量。递推公式dp[j] Math.max(dp[j] , dp[j - weight[i]] values[i])。dp[j]就是不放i物品时的最大价值dp[j - weight[i]] values[i]就是放i物品时的最大价值。初始化当背包容量为0物品最大价值也为0。dp[0] 0。确定遍历顺序先遍历物品后遍历容量。并且倒序遍历背包容量保证每个物品只被放入一次。
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_ENGINEMyISAM;设置表的存储引擎 ALTER TABLE 表名 ENGINE 存储引擎名称;引擎介绍 InnoDB引擎在MySQL5.5版本之后默认使用。支持事务管理可以确保事务的完整提交commit和回滚rollback。对比MyISAMInnoDB写的处理效率差一些保证事务完整性不仅缓存索引还缓存真实数据对内存要求高。是处理海量数据量的最大性能设计。锁机制是行锁操作时只锁一行适合高并发的操作。支持外键。 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)//将返回值转化为JSONResponseBodypublic Result findByParentId(RequestParam(value id, defaultValue 0) Long id) {ListMapString,Object zNodes dictService.findZnodes(id);return Result.ok(zNodes);}DictController中使用了dictService.findZnodes(id)在服务端service-house中DictServiceImpl方法
Autowiredprivate DictDao dictDao;Overridepublic ListMapString,Object findZnodes(Long id) {// 返回数据[{ id:2, isParent:true, name:随意勾选 2}]//根据父节点id获取子节点数据ListDict dictList dictDao.findListByParentId(id);//构建ztree数据ListMapString,Object zNodes new ArrayList();for(Dict dict : dictList) {//判断该节点是否是父节点Integer count dictDao.countIsParent(dict.getId());MapString,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中的方法映射。