博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Swift]LeetCode962. 最大宽度坡 | Maximum Width Ramp
阅读量:5259 次
发布时间:2019-06-14

本文共 3310 字,大约阅读时间需要 11 分钟。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝()
➤GitHub地址:
➤原文地址: 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

Given an array A of integers, a ramp is a tuple (i, j) for which i < j and A[i] <= A[j].  The width of such a ramp is j - i.

Find the maximum width of a ramp in A.  If one doesn't exist, return 0.

Example 1:

Input: [6,0,8,2,1,5]Output: 4Explanation: The maximum width ramp is achieved at (i, j) = (1, 5): A[1] = 0 and A[5] = 5.

Example 2:

Input: [9,8,1,0,1,9,4,0,4,1]Output: 7Explanation: The maximum width ramp is achieved at (i, j) = (2, 9): A[2] = 1 and A[9] = 1.

Note:

  1. 2 <= A.length <= 50000
  2. 0 <= A[i] <= 50000

给定一个整数数组 A是元组 (i, j),其中  i < j 且 A[i] <= A[j]。这样的坡的宽度为 j - i

找出 A 中的坡的最大宽度,如果不存在,返回 0 。

示例 1:

输入:[6,0,8,2,1,5]输出:4解释:最大宽度的坡为 (i, j) = (1, 5): A[1] = 0 且 A[5] = 5.

示例 2:

输入:[9,8,1,0,1,9,4,0,4,1]输出:7解释:最大宽度的坡为 (i, j) = (2, 9): A[2] = 1 且 A[9] = 1.

提示:

  1. 2 <= A.length <= 50000
  2. 0 <= A[i] <= 50000

440ms 
1 class Solution { 2     func maxWidthRamp(_ A: [Int]) -> Int { 3         var val:[Int] = [Int]() 4         var index:[Int] = [Int]() 5         var n:Int = A.count 6         var ans:Int = 0 7         for i in 0..
x29 {30 val.append(x)31 index.append(i)32 }33 }34 return ans35 }36 }

528ms

1 class Solution  2 { 3      4     struct IndexedValue 5     { 6         let index: Int 7         let value: Int 8          9         init( _ index: Int, _ value: Int )10         {11             self.index = index12             self.value = value13         }14     }15     16     func maxWidthRamp( _ values: [ Int ] ) -> Int 17     {18         var indexedValues: [ IndexedValue ] = []19         for index in ( 0 ..< values.count )20         {21             22             indexedValues.append( IndexedValue( index, values[ index ] ) )23             24         }25         indexedValues.sort( 26             by: 27             { 28                 if $0.value == $1.value29                 {30                     return $0.index < $1.index31                 }32                 else33                 {34                     return $0.value <= $1.value35                 }36             } 37         )38         39         var minIndex: Int = indexedValues[ 0 ].index40         var maxRamp: Int = 041         42         for indexedValue in indexedValues43         {44             if indexedValue.index < minIndex45             {46                 minIndex = indexedValue.index47             }48             else49             {50                 let ramp: Int = ( indexedValue.index - minIndex )51                 maxRamp = max( maxRamp, ramp )52             }53         }54         55         return maxRamp56     }57 }

1252ms

1 class Solution { 2     func maxWidthRamp(_ A: [Int]) -> Int { 3         var numbers: [[Int]] = Array(repeating: [], count: 50001) 4         for (i, a) in A.enumerated() { 5             numbers[a] = numbers[a] + [i] 6         } 7         var res: [Int] = [] 8         for i in (0...50000) { 9             res += numbers[i]10         }11         12         var dist = 013         var minN = Int.max14         for i in (0..

 

转载于:https://www.cnblogs.com/strengthen/p/10165234.html

你可能感兴趣的文章
MySQL5.7初始密码查看及重置
查看>>
2018.8.15 题解 2018暑假集训之石子问题
查看>>
匿名内部类
查看>>
Uncaught SyntaxError: Unexpected identifier 报错 import Vue from 'vue';
查看>>
ubuntu13.10 修改grub
查看>>
汉化教程-工具
查看>>
Oracle 锁
查看>>
平方和和立方和_hdu2007
查看>>
overflow属性
查看>>
Leetcode:Minimus Depth of Binary Tree
查看>>
半年实习的一点感悟
查看>>
Servlet 与 Ajax 交互一直报status=parsererror
查看>>
Lucene学习第一课
查看>>
依赖项属性
查看>>
gitlab安装配置
查看>>
MyISAM InnoDB 区别
查看>>
python提高
查看>>
【Jmeter基础知识】Jmeter的三种参数化方式
查看>>
Python开发入门与实战2-第一个Django项目
查看>>
Technet IIS内幕FAQ摘录(一)
查看>>