当前位置:网站首页>Algorithms - ones and zeros (Kotlin)
Algorithms - ones and zeros (Kotlin)
2022-08-05 05:05:00 【Millet technology research and development of the Android Cao X】
题目
给你一个二进制字符串数组 strs 和两个整数 m 和 n .
请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 .
如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 .
示例 1:
输入:strs = [“10”, “0001”, “111001”, “1”, “0”], m = 5, n = 3
输出:4
解释:最多有 5 个 0 和 3 个 1 的最大子集是 {“10”,“0001”,“1”,“0”} ,因此答案是 4 .
其他满足题意但较小的子集包括 {“0001”,“1”} 和 {“10”,“1”,“0”} .{“111001”} 不满足题意,因为它含 4 个 1 ,大于 n 的值 3 .
示例 2:
输入:strs = [“10”, “0”, “1”], m = 1, n = 1
输出:2
解释:最大的子集是 {“0”, “1”} ,所以答案是 2 .
提示:
1 <= strs.length <= 600
1 <= strs[i].length <= 100
strs[i] 仅由 ‘0’ 和 ‘1’ 组成
1 <= m, n <= 100
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/ones-and-zeroes
著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处.
解决思路

解决方法
fun findMaxForm(strs: Array<String>, m: Int, n: Int): Int {
val size = strs.size
val dp = Array(size + 1) {
Array(m + 1) {
Array(n + 1) {
0 } } }
//统计0 和 1 的个数
val array = Array(size) {
Array(2) {
0 } }
strs.forEachIndexed {
index, s ->
val toCharArray = s.toCharArray()
toCharArray.forEach {
if (it == '0') {
array[index][0]++
} else {
array[index][1]++
}
}
}
//填充dp数组
for (i in 0..size) {
for (j in 0..m) {
for (k in 0..n) {
if (i > 0) {
dp[i][j][k] = dp[i - 1][j][k]
if (j - array[i - 1][0] >= 0 && k - array[i - 1][1] >= 0) {
dp[i][j][k] = dp[i][j][k].coerceAtLeast(dp[i - 1][j - array[i - 1][0]][k - array[i - 1][1]] + 1)
}
}
}
}
}
return dp[size][m][n]
}
总结
1.思路要清晰
Let's break down the problem,Just thinking about whether to add the current to the collection
or don't join,Then it is equal to the previous largest value,要么加入,Then the maximum value will wait for the previous onea个0,b个1的最大值 + 1
七夕快乐
边栏推荐
- Homework 8.4 Interprocess Communication Pipes and Signals
- In the hot summer, teach you to use Xiaomi smart home accessories + Raspberry Pi 4 to connect to Apple HomeKit
- 密码学系列之:PEM和PKCS7,PKCS8,PKCS12
- 大学物理---质点运动学
- 动力小帆船制作方法简单,电动小帆船制作方法
- Day019 方法重写与相关类的介绍
- 【cesium】元素高亮显示
- Is the NPDP certificate high in gold content?Compared to PMP?
- dedecms报错The each() function is deprecated
- number_gets the specified number of decimals
猜你喜欢

App rapid development and construction experience: the importance of small programs + custom plug-ins

Feature preprocessing
虚证、实证如何鉴别?

Use IDEA to connect to TDengine server
![[cesium] element highlighting](/img/99/504ca9802db83eb33bc6d91b34fa84.png)
[cesium] element highlighting

MySQL Foundation (1) - Basic Cognition and Operation

Flutter真机运行及模拟器运行

ESP32 485光照度

Machine Learning Overview

机器学习概述
随机推荐
Flutter学习5-集成-打包-发布
AUTOCAD - dimension association
Flutter learning three-Flutter basic structure and principle
Flutter learning 5-integration-packaging-publish
Day14 jenkins deployment
phone call function
C语言-大白话理解原码,反码和补码
MySQL基础(一)---基础认知及操作
The production method of the powered small sailboat is simple, the production method of the electric small sailboat
数字_获取指定位数的小数
Is the NPDP certificate high in gold content?Compared to PMP?
电话溥功能
Mvi架构浅析
uva1325
span标签和p标签的区别
【cesium】元素高亮显示
Day14 jenkins部署
特征预处理
Flutter Learning 4 - Basic UI Components
How to quickly upgrade your Taobao account to a higher level