1686. 石子游戏 VI(2024-02-02)

力扣每日一题 题目:1686. 石子游戏 VI 日期:2024-02-02 用时:15 m 0 s 时间:103ms 内存:57.95MB 代码: class Solution { public int stoneGameVI(int[] aliceValues, int[] bobValues) { int cnt = aliceValues.length; int[][] arrs = new int[cnt][2]; for (int i = 0; i < cnt; i++) { arrs[i] = new int[]{aliceValues[i],bobValues[i]}; } Arrays.sort(arrs,(a,b)->(b[0]+ b[1])-(a[0]+ a[1])); int sub = 0; for (int i = 0; i < cnt; i++) { sub+=i%2==0?arrs[i][0]:-arrs[i][1]; } return sub == 0? 0 :sub / Math.abs(sub); }}

avatar 龙儿之家 发表于 2024-02-02

通过AdobeBridge来浏览、管理和挑选你的素材

同事给我闪送了一个移动硬盘,里面放了拍摄年会的一堆照片和视频,让我挑一些照片用来调色出图。大量图片的批量调色我习惯使用Luminar

avatar 张洪Heo 发表于 2024-02-02

Docker部署Gitlab中文版

创建目录 我在/data/gitlab/下创建了config、data、logs三个目录 cd /data/gitlab mkdir config data logs 安装Gitlab 直接启动gitlab会自动下载镜像,将gitlab的配置、日志、数据目录挂载我们创建的目录,自定义端口映射 doc

avatar 福福不服 发表于 2024-02-01

Docker部署Gitlab中文版

创建目录 我在/data/gitlab/下创建了config、data、logs三个目录 cd /data/gitlab mkdir config data logs 安装Gitlab 直接启动gitlab会自动下载镜像,将gitlab的配置、日志、数据目录挂载我们创建的目录,自定义端口映射 doc

avatar 福福不服 发表于 2024-02-01

GO 的 Web 开发系列(四)—— 静态资源文件访问的几种方式

Web 开发过程中,不可避免会包含有 js / css 等静态资源文件,在 Gin 框架中如何优雅的访问这些静态资源呢? 一、访问外部静态文件 静态资源不打包进可执行文件内部,与可执行文件放在同一目录下,这时候 Gin 的 API 可以直接访问这些文件。 router := gin.Default()router.Static("/admin", "resource/admin") 通过 http://127.0.0.1:8080/admin/ 就可以访问 resource/admin 目录下的资源文件了。 但这种访问方式其实限制也比较多,如果我们希望通过不同的业务字段进行判断,进而实现不同资源文件的响应,那就需要自己增加 GET 方法进行实现。 router.GET("admin/*filePath", func(c *gin.Context) { // 拿到请求 url url := c.Request.RequestURI // 这里可以通过 c.Param 等拿到参数,进行相关的业务判断,然后决定是否响应文件 // ... // 响应文件 c.File("resource/" + c.Request.RequestURI)}) 二、访问内部静态文件 以上方式虽然简单好用,但是需要将资源文件放在可执行文件外部。在一些特殊场景下,我们可能希望把资源文件放在可执行文件内部。 这时候就需要借助 Embed 功能,这个功能是 Go 内置的静态文件打包工具需要 Go 1.16 版本以上才可以支持,只需要几行代码即可进行简单配置。 package mainimport "embed"//go:embed resource/admin/*var f embed.FSfunc main() { router := gin.Default() router.Static...

avatar 玖涯博客 发表于 2024-01-31

GO 的 Web 开发系列(三)—— 通过 Gin 实现 Html 模板和 Api 接口路由

Gin 的路由其实就是 Java 中 @RequestMapping 注解的内容,只是 Go 需要在一个代码模块中统一对所有路由进行配置。 一、路由组配置 一般情况下,通过路由需要完成两个事情,一是通过 HTML 模板完成前端页面的渲染,二是实现 Api 接口调用。 这两部分功能是完全不一样的,在 Gin 中可以用两个不同的路由组来隔离逻辑。 router := gin.Default()// 指定模板文件所在的路径router.LoadHTMLGlob("templates/*.html")// 渲染html的路由组htmlGroup := router.Group("")// api 处理的路由组apiGroup := router.Group("api") 再更近一步,可以将 API 路由组再细分为公共 API 和私有 API。 // 公共API路由组publicGroup := apiGroup.Group("public")// 私有API路由组,绑定鉴权中间件privateGroup := apiGroup.Group("")privateGroup.Use(middleware.AdminAuth) 二、API 接口实现 创建一个简单的 GET 接口,并返回一条字符串数据内容。 apiGroup.GET("/health", func(c *gin.Context) {c.String(200, "ok health")}) 返回一个 JSON 数据: apiGroup.GET("/health", func(c *gin.Context) {c.AbortWithStatusJSON(200, map[string]string{"msg": "ok health"})}) 三、HTML 模板渲染 渲染模板用的是 Go 内置的 html.template 工...

avatar 玖涯博客 发表于 2024-01-31

Redis抓取数据到Logstash再推到Elasticsearch集群

一、安装Logstash 前面安装过Logstash了,不做解释直接跳过 二、配置Logstash 在logstash目录下,编辑我们之前的配置文件logstash.conf vim logstash.conf input、output字面意思,从redis去拿取数据,输出到Elasticsearc

avatar 福福不服 发表于 2024-01-30

Redis抓取数据到Logstash再推到Elasticsearch集群

一、安装Logstash 前面安装过Logstash了,不做解释直接跳过 二、配置Logstash 在logstash目录下,编辑我们之前的配置文件logstash.conf vim logstash.conf input、output字面意思,从redis去拿取数据,输出到Elasticsearc

avatar 福福不服 发表于 2024-01-30

Filebeat日志采集到Logstash再到Elasticsearch集群

一、安装Logstash Logstash我也是在/data下创建了个logstash目录 和Filebeat一样去官网找到你相应的版本下载并解压,点击链接跳转官网:Logstash curl -L -O https://artifacts.elastic.co/downloads/logstash

avatar 福福不服 发表于 2024-01-29

红包封面:祝大家新的一年万事兴隆

感谢大家过去的支持,给大家提前拜个早年,预祝大家万事兴隆,新年开心快乐~

avatar 张洪Heo 发表于 2024-01-29