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

个人如何做购物网站 关于支付接口讷河做网站公司

个人如何做购物网站 关于支付接口,讷河做网站公司,wordpress账号密码都正确登陆不,企信网查不到公司怎么办文章目录 Leetcode 152. 乘积最大子数组题目描述C语言题解和思路解题思路 Leetcode 162. 寻找峰值题目描述C语言题解和思路解题思路 Leetcode 152. 乘积最大子数组 题目描述 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中…

文章目录

  • Leetcode 152. 乘积最大子数组
    • 题目描述
    • C语言题解和思路
      • 解题思路
  • Leetcode 162. 寻找峰值
    • 题目描述
    • C语言题解和思路
      • 解题思路


Leetcode 152. 乘积最大子数组

题目描述

给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。

测试用例的答案是一个 32-位 整数。

示例 1:

输入: nums = [2,3,-2,4]
输出: 6
解释: 子数组 [2,3] 有最大乘积 6。

示例 2:

输入: nums = [-2,0,-1]
输出: 0
解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。

提示:

  • 1 <= nums.length <= 2 * 10^4
  • -10 <= nums[i] <= 10
  • nums 的任何前缀或后缀的乘积都 保证 是一个 32-位 整数

C语言题解和思路

int maxProduct(int* nums, int numsSize) {int i, max = nums[0], min = nums[0], ret = nums[0];for(i = 1; i < numsSize; i++){if(nums[i] < 0){int tmp = max;max = min;min = tmp;}max = fmax(max * nums[i], nums[i]);min = fmin(min * nums[i], nums[i]);ret = fmax(ret, max);}return ret;
}

解题思路

动态规划

乘积的最大子数组和和求子数组最大的和不一样,两个很小的数相乘可能会变成最大的数(负负得正),所以我们不止要记录子数组最大的乘积,还要记录子数组最小的乘积。

将记录最大值的变量 max 、记录最小值的变量 min 、记录返回值的变量 ret ,全部初始化为数组 nums 的第一个数。

从数组的第二个数开始遍历数组,如果该数是负数,交换最大值和最小值。比较该数和最大值与该数的乘积,取更大大值,更新最大值;比较该数与最小值与该数的乘积,取更小值,更新最小值;比较返回值和最大值,更新返回值。

最后返回 ret 。

Leetcode 162. 寻找峰值

题目描述

峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞ 。

你必须实现时间复杂度为 O(log n) 的算法来解决此问题。

示例 1:

输入:nums = [1,2,3,1]
输出:2
解释:3 是峰值元素,你的函数应该返回其索引 2。

示例 2:

输入:nums = [1,2,1,3,5,6,4]
输出:1 或 5
解释:你的函数可以返回索引 1,其峰值元素为 2;或者返回索引 5, 其峰值元素为 6。

提示:

  • 1 <= nums.length <= 1000
  • -231 <= nums[i] <= 231 - 1
  • 对于所有有效的 i 都有 nums[i] != nums[i + 1]

C语言题解和思路

int findPeakElement(int* nums, int numsSize) {if(numsSize == 1){return 0;}int i = 1, max = 0;while(i + 1 < numsSize){if(nums[i - 1] < nums[i] && nums[i] > nums[i + 1]){return i;}max = nums[max] > nums[i] ? max : i;if(nums[i + 1] < nums[i]){i += 2;}else{i++;}}max = nums[max] > nums[numsSize - 1] ? max : numsSize - 1;return max;
}

解题思路

这题在寻找数组中的峰值元素,如果该元素大于左右两边的元素,直接返回该元素下标,如果不存在大于左右两边的元素,返回最大值元素的下标,所以在循环中,我们还同时要记录数组最大值元素的下标。

最大值下标初始化为 0 ,从下标 1 开始遍历数组:判断该下标的元素是否满足条件,如果满足,直接返回该下标;比较值和最大值,记录更大值的下标;判断该元素的下一个元素比该元素小还是大,如果比该元素小, i 前进两步,否则 i 前进一步。

如果循环结束还没有返回任何值,返回最大值的下标。

http://www.hyszgw.com/news/40613.html

相关文章:

  • 合肥地区建网站公司广州网络
  • 购物网站界面设计策划网站聊天代码
  • 网站建设模板公司网站页面高度
  • 站优化广州白云学校网站建设
  • 娱乐建设网站建网站当老板
  • linux做网站方便吗二级a做爰片免费网站
  • 高品质的网站开发公司网络营销电子版教材
  • 开发移动网站北京品牌网站定制公司
  • 智慧团建网站登录入口官网自己做网站需要什么软件下载
  • 个人网站怎样做超链接网站建设进展推进表
  • 电商网站业务流程图企业网站及信息化建设
  • 潍坊门户网站建设个人网站首页布局设计
  • 域名还在备案可以做网站吗Wordpress自建外贸网站
  • 北京做的比较好的网站公司吗信阳网络营销公司
  • 做网站编辑设计师培训多少
  • 945新开传奇网站门户网站开发文档
  • 梅州市建设工程交易中心网站四川建设局网站
  • 上海高端网站设计沈阳市住房和城乡建设部网站
  • 国外设计师灵感网站做网站公司商丘
  • app软件免费模板下载网站国际购物网站排名
  • 网站模板用什么打开临沂外贸国际网站建设
  • 南通网站备案网站应用网站开发
  • 网站建设网站制作公司哪家好柳州网站建设工作室
  • 营销网站建设汉狮电话wordpress 登录按钮
  • 泰州哪里做网站东莞网站网络推广公司
  • 密云郑州阳网站建设免费网站模板在哪下载
  • 铁道部网上订票网站素材中山手机网站建设哪家好
  • 做网站初始配置化工建设信息网站
  • 做下载网站挣钱吗网盘资源大全
  • 网站建设与服务技能实训附近cad制图培训班