Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2021-05-24:盛最多水的容器。给你 n 个非负整数 a1,a2,...,an

2021-05-24:盛最多水的容器。给你 n 个非负整数 a1,a2,...,an

原创
作者头像
福大大架构师每日一题
修改于 2021-05-25 02:36:37
修改于 2021-05-25 02:36:37
5690
举报

2021-05-24:盛最多水的容器。给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

福大大 答案2021-05-24:

双指针。左指针最左,符合条件时右移;右指针最右,符合条件时左移。左指针和右指针,谁小谁移动;同样大,移动左指针。时间复杂度O(N),额外空间复杂度O(1)。

代码用golang编写。代码如下:

代码语言:txt
AI代码解释
复制
package main

import "fmt"

func main() {

    arr := []int{1, 8, 6, 2, 5, 4, 8, 3, 7}
    ret := maxArea2(arr)
    fmt.Println(ret)

}

func maxArea2(h []int) int {
    max := 0
    l := 0
    r := len(h) - 1
    for l < r {
        max = getMax(max, getMin(h[l], h[r])*(r-l))
        if h[l] > h[r] {
            r--
        } else {
            l++
        }
    }
    return max
}

func getMax(a int, b int) int {
    if a > b {
        return a
    } else {
        return b
    }
}

func getMin(a int, b int) int {
    if a < b {
        return a
    } else {
        return b
    }
}

执行结果如下:

图片
图片

左神java代码

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
sqlite3的C语言使用(一)
前一天我讲了如何在VC中连接sqlite的库,从今天开始就分几个专题详细学习一下sqlite的一些API。当然我也是才接触sqlite3,这些题也都是我的作业题,如果有什么错误大家可以联系我,共同进步。
phith0n
2020/10/15
3.3K0
玩转SQLite-11:C语言高效API之sqlite3_prepare系列函数
SQLite是一个跨平台的轻量级数据库,支持C/C++开发,可用于嵌入式中,关于C/C++使用SQLite的简单实例,之前这篇文章,已经介绍过一种简单的使用方式。本篇来介绍另一种更加高效的调用方式。
xxpcb
2022/12/29
1.8K0
ios在SQLite3基本操作
首先是设置项目文件。在项目中加入iPhone版的sqlite3的数据库的开发包。在项目下的Frameworks点击右键。然后选择libsqlite3.0.dylib文件。
全栈程序员站长
2022/07/05
7740
Sqlite3详细解读
"代码下载:SQLite3_2013_0402详细版.zip" http://vdisk.weibo.com/s/Gb9Qi
py3study
2020/01/07
3.9K0
iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
  在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集。在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句。在本篇博客中会了解一下sqlite3_stmt,然后了解一下变量的绑定。变量绑定,简单的说就是往预编译后的SQL语句中传入相应的值。   一. sqlite3_stmt 的生命周期   这个对象的实例代表着一个被编译成二进制的SQL语句。每个SQL语句都必须经过预编译转换成sqlite3_stmt才能被执行。在iOS开发中,Application或
lizelu
2018/01/11
1.3K0
iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
SQLite3使用笔记(1)——查询
SQLite是一个嵌入式SQL数据库引擎。与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程。SQLite 直接读写普通磁盘文件。具有多个表、索引、触发器和视图的完整SQL数据库包含在单个磁盘文件中。
charlee44
2022/05/23
1.5K0
如何优化 SQLite 每秒的插入操作
SQLite 的优化比较棘手,就批量插入而言,其速度可以从每秒 85 条优化到每秒 96,000 条。下面我们来具体看下实验过程和结果,
ClearSeve
2022/02/10
3.5K0
SQLite3使用笔记(2)——插入
如同上一篇文章SQLite3使用笔记(1)——查询所述,使用SQLite进行查询操作同样有两种方式。对于比较简单的表格插入,使用sqlite3_exec()接口就可以了:
charlee44
2022/05/23
6800
【IOS开发基础系列】数据持久化专题
iOS中可以有四种持久化数据的方式: 属性列表、对象归档、SQLite3和Core Data。
江中散人_Jun
2023/10/16
4040
【IOS开发基础系列】数据持久化专题
iOS原生sqlite3框架操作数据库
iOS开发的基本上都知道fmdb,自从用了fmdb之后都忘记了原生的sqlite3操作了(fmdb太好用了)。 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。 SQLite是一个轻量级的关系数据库。SQLite最初的设计目标是用于嵌入式系统,TA占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,目前应用于Android、iOS、Windows Phone等智能手机。 需要注
傅_hc
2018/07/04
1.3K0
Sqlite数据库使用简介以Windows下简单的引入数据库到C++项目为例
SQLite 是一个开源的嵌入式关系型数据库管理系统。它不是作为一个独立进程运行的服务,而是作为一个库直接链接到应用程序中。这意味着使用 SQLite 的应用程序可以随身携带其数据库,并且可以在不需要单独服务器管理的情况下操作数据。
晨星成焰
2024/08/02
5701
Sqlite数据库使用简介以Windows下简单的引入数据库到C++项目为例
iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements
  在《SQLite的C语言接口规范(一)》中介绍了如何去连接打开数据库,本篇博客就介绍如何操作数据库,本篇主要给出了如何执行数据库查询语句(Select), 然后遍历结果集。本篇博客就直接使用上一篇博客封装的打开数据库的方法获取到数据库的操作句柄,然后通过这个句柄来操作我们的Sqlite数据库。今天这篇博客中要多Cars.sqlite数据库中的其中一个表进行Select操作。更为细节的东西请参考SQLite官网:http://www.sqlite.org 。   一.预编译SQL语句     要想执行一条
lizelu
2018/01/11
1.1K0
iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements
使用iOS原生sqlite3框架对sqlite数据库进行操作
      sqlite数据库是一种小型数据库,由于其小巧与简洁,在移动开发领域应用深广,sqlite数据库有一套完备的sqlite语句进行管理操作,一些常用的语句和可视化的开发工具在上篇博客中有介绍,地址如下:
珲少
2018/08/15
2.2K0
使用iOS原生sqlite3框架对sqlite数据库进行操作
swift 简易操作sqlite3 之 通用查询
上篇文章我们写了关于SQLite的简单操作和一些基本常识,对此陌生的童鞋可以参考之前的文章(swift简易操作sqlite3),今天我们在此基础上进一步加工处理,写出通用查询操作方法
大话swift
2019/07/03
1.5K0
swift 简易操作sqlite3 之 通用查询
Sqlite 接口封装(c++)
Freedom123
2024/03/29
2880
C/C++ 通过SQLiteSDK增删改查
SQLite,作为一款嵌入式关系型数据库管理系统,一直以其轻量级、零配置以及跨平台等特性而备受青睐。不同于传统的数据库系统,SQLite是一个库,直接与应用程序一同编译和链接,无需单独的数据库服务器进程,实现了数据库的零配置管理。这种设计理念使得SQLite成为许多嵌入式系统、移动应用和小型项目中的首选数据库引擎。
王瑞MVP
2023/11/26
4750
C/C++ 通过SQLiteSDK增删改查
Sqlite 读写blob数据(c++)
参考:https://www.cnblogs.com/wengzilin/archive/2012/03/28/2420796.html
Freedom123
2024/03/29
3020
SQLite3 Cpp基本使用
文章目录 SQLite3 C++ #0 GitHub #1 环境 #2 安装sqlite3 #3 使用 #3.1 基本SQL语句 #3.2 sqlite3 API #3.3 Code SQLite3 C++ 0 GitHub example代码 SQLite3 C++ Demo Github 1 环境 macOS C++14 2 安装sqlite3 git clone https://github.com/sqlite/sqlite.git cd sqlite && mkdir bld && cd bld
Autooooooo
2021/12/07
1.3K0
SQLite3 Cpp基本使用
学习iPhone开发中 sqlite3的
    由于我主要负责我们小组项目数据库模块的部分所以这几天都一直在研究在iphone中最为常用的一个简单数据库sqlite,自己也搜集很多资料,因此在这里总结一下这几天的学习成果:
py3study
2020/01/08
9930
C++编程库与框架实战——SQLite3数据库引擎
SQLite是可以实现类似于关系型数据库中各种操作的事务性SQL数据库引擎,可以为应用程序提供存储于本地的嵌入式数据库,帮助应用程序实现轻量级的数据存储。
Coder-ZZ
2024/06/06
1.3K0
C++编程库与框架实战——SQLite3数据库引擎
推荐阅读
相关推荐
sqlite3的C语言使用(一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档