方法有点笨,但毕竟是自己一个字母字母敲出来的,大家有好方法,欢迎大家评论.


算法

  • 题目需求1:
    • 盛最多水的容器
      • 示例
      • 解题方法1:暴力法
      • 解题方法2:双指针法冗余
      • 解题方法3:双指针简化
  • 题目需求2:
    • 寻找两个正序数组的中位数(比较笨)
      • 示例

题目需求1:

盛最多水的容器

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转

示例

输入:[1,8,6,2,5,4,8,3,7]
输出:49
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。

输入:height = [4,3,2,1,4]
输出:16输入:height = [1,2,1]
输出:2

求最大容量 --→ 可理解为 求长方形的最大面积

解题方法1:暴力法

public int maxArea(int[] height) {int area = 0;//容器左边高  也可理解为第i趟for (int i = 0; i < height.length; i++) {//容器右边高  同理 第j次for (int j = i + 1; j < height.length; j++) {//求面积最大, j-i 为宽area = Math.max(area, (j-i)* Math.min(height[i],height[j]));}}return area;
}

解题方法2:双指针法冗余

为了防止有遗漏,我们需要进行俩次遍历

public int maxArea1(int[] height){int maxarea = 0;int left,right,area;left=0;while (left < height.length) {right = height.length - 1;while (left < right) {if (height[left] > height[right]) {//左边板子大 ,右边左移right--;} else {break;}}area = (right - left) * height[left];maxarea = Math.max(area,maxarea);left++;}right=height.length-1;while (right > 0) {left=0;while (right > left){if (height[right] > height[left]){//右边板子大,左边右移left++;}else {break;}}area = (right - left)*  height[right] ;maxarea = Math.max(area, maxarea);right--;}return maxarea;
}

解题方法3:双指针简化

    public int maxArea2(int[] height){int left=0,right = height.length-1;int area=0;while (right > left){if (height[right] > height[left]){area = Math.max(area,(right-left)*height[left]);left++;}else {area = Math.max(area,(right-left)*height[right]);right--;}}return area;}

题目需求2:

寻找两个正序数组的中位数(比较笨)

示例

示例1
输入:nums1 = [1,3], nums2 = [2]
输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2示例2
输入:nums1 = [1,2], nums2 = [3,4]
输出:2.50000
解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5

给定两个大小为 m 和 n 的正序(从小到大)数组 nums1nums2。请你找出并返回这两个正序数组的中位数。

1.将俩个数组合并
2.对合并的数组排序
3.实现中数

public double findMedianSortedArrays(int[] nums1, int[] nums2) {//创建空数组存储新的数组int[] nums = new int[nums1.length + nums2.length];double  mid=0;int i=0,j;//将数组nums1加到数组nums里边for (i = 0; i < nums1.length; i++) {nums[i] = nums1[i];}//将数组nums2加到数组nums里边for (j=0;j<nums2.length;j++){nums[nums1.length+j] = nums2[j];}//对数组nums进行排序for (int k = 0; k < nums.length; k++) {for (int l = 0; l < nums.length-1; l++) {if (nums[l]>nums[l+1]){int temp = nums[l];nums[l] = nums[l+1];nums[l+1] = temp;}}}//找中数while (nums.length>0){int a = nums.length / 2;if (nums.length % 2 !=0){mid = nums[a];break;}else {double x = nums[a]+nums[a-1];mid = x /2;break;}}return mid;
}

leetcode算法(2)相关推荐

  1. leetcode17. 电话号码的字母组合--每天刷一道leetcode算法系列!

    作者:reed,一个热爱技术的斜杠青年,程序员面试联合创始人 前文回顾: leetcode1. 两数之和--每天刷一道leetcode系列! leetcode2. 两数相加--每天刷一道leetcod ...

  2. LeetCode算法题-Nth Digit(Java实现)

    这是悦乐书的第215次更新,第228篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第83题(顺位题号是400).找到无限整数序列的第n个数字1,2,3,4,5,6,7,8 ...

  3. LeetCode算法题-Reverse Linked List(Java实现)

    这是悦乐书的第192次更新,第195篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第51题(顺位题号是206).反转单链表.例如: 输入:1-> 2-> 3- ...

  4. LeetCode算法题-Convert a Number to Hexadecimal(Java实现)

    这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...

  5. leetcode算法题--零钱兑换

    原题链接:https://leetcode-cn.com/problems/coin-change/ 相关题目:leetcode算法题–完全平方数★ 动态规划 dp[i] i从0到amount,dp[ ...

  6. leetcode算法题-- 买卖股票的最佳时机

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/ 这类股票题目请见leetcode算法题–最佳买卖股票时机含 ...

  7. leetcode算法题--买卖股票的最佳时机 II

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ 这类股票题目请见leetcode算法题–最佳买卖股票 ...

  8. leetcode算法题--买卖股票的最佳时机含手续费

    原题链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/ 这类股票题目请见 ...

  9. leetcode算法题--完全平方数★

    原题链接:https://leetcode-cn.com/problems/perfect-squares/ 相关题目:leetcode算法题–零钱兑换 1.回溯法 就是暴力法,套路就是递归,但是有很 ...

  10. leetcode算法题--不同的二叉搜索树

    原题链接:https://leetcode-cn.com/problems/unique-binary-search-trees/ 相关题目:leetcode算法题--不同的二叉搜索树 II 1.递归 ...

最新文章

  1. tar 解压缩命令详解
  2. 简单看正则(grep)
  3. iphone屏蔽系统更新_iPhone 屏蔽系统更新教程,支持 iOS13 / iOS12 系统
  4. Quartz.Net进阶之四:CronTrigger 详述
  5. [Andriod官方训练教程]保存数据之保存键-值对的集合
  6. 双目立体放大!谷歌刚刚开源的这篇论文可能会成为手机双摄的新玩法
  7. Sublime Text C# 编译(csharp.sublime-build)
  8. 新常态 新核心,浪潮商用机器为关键行业数字化转型打造新Power
  9. docker+elasticsearch的安装
  10. Java继承(extends)的实现和 instanceof 运算符的使用
  11. 三、Oracle 游标、存储过程、存储函数、触发器
  12. phoenix 根据条件更新_教您一步步升级Phoenix BIOS
  13. Web安全班作业 | WireShark抓包ARP报文分析并实施ARP中间人攻击
  14. 教你设置QQ空间个性签名档
  15. Java后端使用Freemarker导出word文档的各种细节
  16. Android 小米计算器,小米计算器app_小米计算器安卓版_小米计算器正式_易玩网
  17. 点云配准NDT+ICP
  18. 亚马逊跨境电商平台怎么入驻?
  19. 巨大的市场潜力,细数2019国内云计算新排名
  20. 支付宝年度账单交互效果的实现

热门文章

  1. 基于QT封装的音视频播放时间轴控件
  2. java hgetall_redis调用 hgetAll方法报错,望迅速解决啊急急急
  3. android和artset区别,artset安卓版
  4. 活用Koomail的IMAP协议功能同步Gmail邮件
  5. 菜鸡的秋招升级打怪之旅
  6. 基于MThings配置MODBUS数据中常见的几种时间概念介绍(超时时间、间隔时间、轮询时间)
  7. Collections用法
  8. BIM模型一键输出 3D Tiles (for Cesium) 和 glTF/blg
  9. ecu故障现象_汽车电脑ECU的故障诊断检修方法9种
  10. TortoiseSVN的所有使用