LeetCode-11.装最多水的容器
一、C实现
1. 参考:https://www.jb51.net/article/217205.htm
2. 代码
#include <stdio.h> #include <stdlib.h> #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0])) int max_val(int x, int y) { return x > y ? x : y; } int min_val(int x, int y) { return x > y ? y : x; } /* 双指针法 */ int comp_max_water(int *arr, int sz) { int i = 0, j = sz - 1, max = 0; while(i < j) { max = max_val(max, min_val(arr[i], arr[j]) * (j - i)); arr[i] < arr[j] ? i++ : j--; } return max; } int main() { int arr[] = {1,8,6,2,5,4,8,3,7}; printf("max water = %d\n", comp_max_water(arr, ARRAY_SIZE(arr))); //max water = 49 return 0; }
posted on 2025-02-16 15:33 Hello-World3 阅读(9) 评论(0) 收藏 举报