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

免费网站开发框架电子商务网站建设与维护pdf

免费网站开发框架,电子商务网站建设与维护pdf,腾讯邮箱企业邮箱登录,文山做网站的地方算法题 Leetcode 1005.K次取反后最大化的数组和 题目链接:1005.K次取反后最大化的数组和 大佬视频讲解#xff1a;K次取反后最大化的数组和视频讲解 个人思路 思路清晰#xff0c;因为是取反当然是取越小的负数越好#xff0c;那么先按绝对值排序。如果是负数就取反#… 算法题 Leetcode 1005.K次取反后最大化的数组和 题目链接:1005.K次取反后最大化的数组和 大佬视频讲解K次取反后最大化的数组和视频讲解 个人思路 思路清晰因为是取反当然是取越小的负数越好那么先按绝对值排序。如果是负数就取反相应取反次数减一遍历到没有负数后还有取反次数就选绝对值最小的值取反剩下的次数最后数组和就是最大的也是局部最优求全局最优的结果可以用贪心 解法 贪心法 按照贪心法的步骤来解题步骤为 第一步将数组按照绝对值大小从大到小排序第二步从前向后遍历遇到负数将其变为正数同时K--第三步如果K还大于0那么反复转变数值最小的元素将K用完第四步求和 class Solution {public int largestSumAfterKNegations(int[] nums, int K) {nums IntStream.of(nums) //创建了一个原始类型 int 的流.boxed()//将流中的int值装箱成Integer对象.sorted((o1, o2) - Math.abs(o2) - Math.abs(o1))//按绝对值大小排序.mapToInt(Integer::intValue).toArray();//转回int[] 类型的数组int len nums.length; for (int i 0; i len; i) {//从前向后遍历遇到负数将其变为正数同时K--if (nums[i] 0 K 0) {nums[i] -nums[i];K--;}}// 如果K还大于0那么反复转变数值最小的元素将K用完if (K % 2 1) nums[len - 1] -nums[len - 1];return Arrays.stream(nums).sum();} }时间复杂度:O(n log n)排序操作的时间复杂度是 n log n 空间复杂度:O(n);代码使用了额外的数组来存储排序后的结果 Leetcode  134. 加油站 题目链接:134. 加油站 大佬视频讲解加油站视频讲解 个人思路 首先总油量减去总消耗大于等于零那么一定可以跑完一圈找起点就从头遍历油减油耗如果有负数就当前遍历点加1重新计算直到遍历完总油耗还是大于0 解法 贪心法 首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈也就是各个站点的加油站 剩油量rest[i]相加一定是大于等于零的。 每个加油站的剩余量rest[i]为gas[i] - cost[i]。 i从0开始累加rest[i]和记为curSum一旦curSum小于零说明[0, i]区间都不能作为起始位置因为这个区间选择任何一个位置作为起点到i这里都会断油那么起始位置从i1算起再从0计算curSumi1后面如果出现更大的负数就是更新i那么起始位置又变成新的i1了 局部最优当前累加rest[i]的和curSum一旦小于0起始位置至少要是i1因为从i之前开始一定不行。全局最优找到可以跑一圈的起始位置。局部推全部贪心 class Solution {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum 0;//当前油耗int totalSum 0;//全部油耗int index 0;//起点for (int i 0; i gas.length; i) {curSum gas[i] - cost[i];totalSum gas[i] - cost[i];if (curSum 0) {index (i 1) % gas.length ; //更换新起点curSum 0;}}if (totalSum 0) return -1;return index;} } 时间复杂度:O(n)遍历整个数组 空间复杂度:O(1);常量级的变量 Leetcode  135. 分发糖果 题目链接:135. 分发糖果 大佬视频讲解分发糖果视频讲解 个人思路 到底是一起算还是分开计算呢思路不清晰... 解法 贪心法 这道题目一定是要确定一边之后再确定另一边先比较每一个孩子的左边然后再比较右边如果两边一起考虑一定会顾此失彼。 先确定右边评分大于左边的情况比较左孩子从前向后遍历确定分发糖果的第一个数组 再确定左孩子大于右孩子的情况比较右孩子从后向前遍历对前一个数组优化比较右孩子增加糖果的同时也要比交上一个数组的糖果值二者取最大的. 具象化代码步骤就是分两个阶段         1、起点下标1 从左往右只要 右边 比 左边 大右边的糖果左边 1          2、起点下标 ratings.length - 2 从右往左 只要左边 比 右边 大此时 左边的糖果应该 取本身的糖果数符合比它左边大 和 右边糖果数 1 二者的最大值这样才符合 它比它左边的大也比它右边大 class Solution {public int candy(int[] ratings) {int len ratings.length;int[] candyNums new int[len];candyNums[0] 1;//初始化第一个孩子糖果数for (int i 1; i len; i) {//从左往右比左孩子candyNums[i] (ratings[i] ratings[i - 1]) ? candyNums[i - 1] 1 : 1;}for (int i len - 2; i 0; i--) {//从右往左比右孩子if (ratings[i] ratings[i 1]) {candyNums[i] Math.max(candyNums[i], candyNums[i 1] 1);//取最大糖果数}}int ans 0;for (int num : candyNums) {//累加和ans num;}return ans;} } 时间复杂度:O(n)遍历两遍整个数组 空间复杂度:O(n);暂存数组大小 以上是个人的思考反思与总结若只想根据系列题刷参考卡哥的网址代码随想录算法官网
http://www.hkea.cn/news/14285586/

相关文章:

  • 为网站开发appapp软件开发摄像头
  • 化工产品网站建设公司网站建网
  • 网站后台权限管理怎么做的哈尔滨网络优化工程师
  • ps手机网站页面设计跨境电商官方网址
  • seo怎么快速提高排名优化网站关键词优化
  • php 网站开发流程icons8
  • 福建省建设厅网站人员广州开发区控股集团有限公司
  • 昆明做一个公司网站多少费用代理公司注册记账
  • 网站模板预览wordpress登录页面自定义
  • 域名在哪个网站卖好二级网站建设方案模板
  • 东莞网站建设基本流程图企云网站建设
  • 营销型门户网站建设方案wordpress固定链接设置失败
  • 蛋糕网站建设方案优酷网站模板下载
  • 建设部官网网站久久租房网
  • 公司做网站可以永久买断吗响应式网站模板的特点
  • 龙华三网合一网站建设昆明做网站建设
  • 去哪找做网站的人口碑好的赣州网站建设
  • 开个网站卖机器怎么做软件开发网站能做seo吗
  • 杭州酒店网站设计公司推荐制作简历网站开发
  • 5个在线设计网站快速建站框架
  • 中山 网站制作wordpress固定衔接出错
  • 地产商网站建设手机视频网站设计
  • 自己做网站用什么数据库怎样在百度能搜到自己的网站
  • 大型网站开发视频百度云可视化编辑 wordpress
  • 网站备案域名更改吗软件工程的开发过程是指
  • wordpress自定义页面分页百度整站优化
  • 德国的网站域名wordpress主题访问慢
  • 10天搞定网站开发中国建设银行官网网址多少
  • 陕西网站建设优化建站中国小康建设网官方网站
  • 网站制度建设存在的问题高端网站建设定制