本文主要是介绍fmax,fmin函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 前言
- 1.含义
- 2.举例
- 一、算法题实现
- 1.题目
- 2.基本思路
- 3.代码实现
前言
1.含义
fmax,fmin函数用于c语言中快速比较两数大小
作用是:
返回两个浮点参数中较大的一个
2.举例
#include <stdio.h>
#include <math.h>int main(void)
{printf("fmax(2,1) = %f\n", fmax(2,1));printf("fmax(-Inf,0) = %f\n", fmax(-INFINITY,0));printf("fmax(NaN,-1) = %f\n", fmax(NAN,-1));
}
输出:
fmax(2,1) = 2.000000
fmax(-Inf,0) = 0.000000
fmax(NaN,-1) = -1.000000
fmin函数与上述函数作用相同只是返回两个数中较小的那个数
一、算法题实现
1.题目
给定一个数组 prices ,其中 prices[i] 表示股票第 i 天的价格。
在每一天,你可能会决定购买或出售股票。你在任何时候最多只能持有一股股票。你也可以购买它然后在同一天出售,返回你能获得的最大利润 。
示例1:
输入: prices = [7,1,5,3,6,4]
输出: 7
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
示例2:
输入: prices = [1,2,3,4,5]
输出: 4
解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
示例3:
输入: prices = [7,6,4,3,1]
输出: 0
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
2.基本思路
要求最大利润,使用贪心算法即可,只要是能赚钱,就统统头天买,今天卖。这道题目用到了我们上文中提到的fmax函数帮助我们更好的解决这道题
3.代码实现
int maxProfit(int* prices, int pricesSize) {int a = 0;for (int i = 1; i < pricesSize; ++i) {a += fmax(0, prices[i] - prices[i - 1]);}return a;
}
这篇关于fmax,fmin函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!