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

建设商务网站的方案如何让产品吸引顾客

建设商务网站的方案,如何让产品吸引顾客,服务好的高端网站建设企业,免费qq空间网站1005. Maximize Sum Of Array After K Negations 参考视频:贪心算法,这不就是常识?还能叫贪心?LeetCode:1005.K次取反后最大化的数组和_哔哩哔哩_bilibili 贪心🔍 的思路,局部最优&#xff…

1005. Maximize Sum Of Array After K Negations

参考视频:贪心算法,这不就是常识?还能叫贪心?LeetCode:1005.K次取反后最大化的数组和_哔哩哔哩_bilibili 

贪心🔍

的思路,局部最优:让绝对值大的负数变为正数,当前数值达到最大,整体最优:整个数组和达到最大。

局部最优可以推出全局最优。

那么如果将负数都转变为正数了,K依然大于0,此时的问题是一个有序正整数序列,如何转变K次正负,让 数组和 达到最大。

那么又是一个贪心:局部最优:只找数值最小的正整数进行反转,当前数值和可以达到最大(例如正整数数组{5, 3, 1},反转1 得到-1 比 反转5得到的-5 大多了),全局最优:整个 数组和 达到最大。

虽然这道题目大家做的时候,可能都不会去想什么贪心算法,一鼓作气,就AC了。

我这里其实是为了给大家展现出来 经常被大家忽略的贪心思路,这么一道简单题,就用了两次贪心!

那么本题的解题步骤为:

第一步:将数组按照绝对值大小从大到小排序,注意要按照绝对值的大小
第二步:从前向后遍历,遇到负数将其变为正数,同时K--
第三步:如果K还大于0,那么反复转变数值最小的元素,将K用完
第四步:求和

public class Leetcode1005 {public static int largestSumAfterKNegations(int[] nums, int k) {sort(nums);for (int i = 0; i < nums.length; i++) {if (k > 0 && nums[i] < 0) {nums[i] *= -1;k--;}}if (k % 2 == 1) nums[nums.length - 1] *= -1;int res = 0;for (int num : nums) {res += num;}return res;}public static void sort(int[] nums) {for (int i = 0; i < nums.length; i++) {for (int j = i + 1; j < nums.length; j++) {if (Math.abs(nums[i]) < Math.abs(nums[j])) {int temp = nums[j];nums[j] = nums[i];nums[i] = temp;}}}}
}

 134. 加油站

解题思路:

可以换一个思路,首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈,说明 各个站点的加油站 剩油量rest[i]相加一定是大于等于零的。

每个加油站的剩余量rest[i]为gas[i] - cost[i]。

i从0开始累加rest[i],和记为curSum,一旦curSum小于零,说明[0, i]区间都不能作为起始位置,因为这个区间选择任何一个位置作为起点,到i这里都会断油,那么起始位置从i+1算起,再从0计算curSum。

public class Leetcode134 {public int canCompleteCircuit(int[] gas, int[] cost) {int curSum = 0;int totalSum = 0;int start = 0;for (int i = 0; i < gas.length; i++) {curSum += (gas[i] - cost[i]);totalSum += (gas[i] - cost[i]);if (curSum < 0) {start = i + 1;curSum = 0;}}if (totalSum < 0) return -1;return start;}
}

 135. 分发糖果

public class Leetcode135 {public static int candy(int[] ratings) {int[] candy = new int[ratings.length];Arrays.fill(candy, 1);for (int i = 1; i < ratings.length; i++) {if (ratings[i] > ratings[i - 1]) {candy[i] = candy[i - 1] + 1;}}System.out.println(Arrays.toString(candy));for (int i = ratings.length - 2; i >= 0; i--) {if (ratings[i] > ratings[i + 1]) {candy[i] = Math.max(candy[i + 1] + 1, candy[i]);}}System.out.println(Arrays.toString(candy));int res = 0;for (int i : candy) {res += i;}return res;}
}

http://www.wangmingla.cn/news/53441.html

相关文章:

  • 网站建设与开发论文郑州网站制作推广公司
  • 淘宝客推广怎么做网站备案关键词查询工具软件
  • 企业网站的特点是什么百度广告投放公司
  • 做婚姻网站流程小程序推广接单平台
  • 怎么做一个网站 免费整站多关键词优化
  • 做网站的费用入什么科目黑帽seo培训网
  • wordpress固定链接分类seo站长博客
  • 哪个网站做的系统好广州代运营公司有哪些
  • 华为商城的网站建设seo诊断专家
  • 网站建设方案书 模板搜索引擎营销案例有哪些
  • 自己做链接网站网站seo优化皆宣徐州百都网络不错
  • 免费网站收录提交简述什么是网络营销
  • 织梦网站打不开新闻发布平台
  • 网页设计外文文献长沙百度搜索排名优化
  • 陕西疫情最新情况最新消息今天seo网站外链平台
  • 网站建设案列培训总结怎么写
  • 订购网站模板java培训学费多少钱
  • 黄石网站设计公司阳江seo
  • 只做网站哪个云服务器好深圳网站设计公司
  • 购物节优惠卷网站怎么做网站收录什么意思
  • 怎么用自己的电脑做网站主机网站制作免费
  • 微信运营网站建设怎么开网店
  • 钟楼区建设局网站什么网站百度收录快
  • 手机网站 做成app网页制作代码
  • 买域名做网站推广都是些什么打广告的免费软件
  • 界面做的最好的网站百度推广服务费一年多少钱
  • 重庆做商城网站建设google浏览器官方
  • 网站建设与动态网页广告公司主要做什么
  • 嘉兴网站建设正规公司找精准客户的app
  • 营销型企业网站系统天眼查询个人信息