474. Ones and Zeroes

2024-02-02 07:32
文章标签 474 zeroes ones

本文主要是介绍474. Ones and Zeroes,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在计算机界中,我们总是追求用有限的资源获取最大的收益。

现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。

你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字符串的最大数量。每个 0 和 1 至多被使用一次

注意:

  1. 给定 0 和 1 的数量都不会超过 100
  2. 给定字符串数组的长度不会超过 600

示例 1:

输入: Array = {"10", "0001", "111001", "1", "0"}, m = 5, n = 3
输出: 4解释: 总共 4 个字符串可以通过 5 个 0 和 3 个 1 拼出,即 "10","0001","1","0" 。

示例 2:

输入: Array = {"10", "0", "1"}, m = 1, n = 1
输出: 2解释: 你可以拼出 "10",但之后就没有剩余数字了。更好的选择是拼出 "0" 和 "1" 。

Review:

类似于01背包问题,使用dp算法


Code:

class Solution {public int findMaxForm(String[] strs, int m, int n) {int[][] dp = new int[m + 1][n + 1];for (String str : strs) {int zero = 0, one = 0;for (int i = 0; i < str.length(); i++)if (str.charAt(i) == '0') zero++;else one++;for (int i = m; i >= zero; i--)for (int j = n; j >= one; j--)dp[i][j] = Math.max(dp[i - zero][j - one] + 1, dp[i][j]);}return dp[m][n];}
}

 短就完事了

这篇关于474. Ones and Zeroes的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/669935

相关文章

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接

NYOJ 708 ones

OJ题目 :http://acm.nyist.net/JudgeOnline/problem.php?pid=708 描述 Given a positive integer N (0<=N<=10000), you are to find an expression equals to N using only 1,+,*,(,). 1 should not appear continuo

[LeetCode] 485. Max Consecutive Ones

题: 题目 Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1,1,0,1,1,1]Output: 3Explanation: The first two digits or the last three digits are consec

[LeetCode] 283. Move Zeroes

题:https://leetcode.com/problems/move-zeroes/submissions/1 题目 Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements. Ex

[LeetCode] 474. Ones and Zeroes

题:https://leetcode.com/problems/ones-and-zeroes/description/ 题目 In the computer world, use restricted resource you have to generate maximum benefit is what we always want to pursue. For now, suppos

Matlab_learning_0(linspace,std,size,ones,errorbar)

一、首先上一段代码 x=linspace(0,2*pi);y=sin(x);e=std(y)*ones(size(x)); errorbar(x,y,e,'d');%set(gcf,'MenuBar','none','Position',[400,350,350,250]); 二、函数解释        1.linsapce: linspace Linearly spac

代码随想录算法训练营第36天|1049. 最后一块石头的重量、494. 目标和、474.一和零

目录 1049. 最后一块石头的重量 II1、题目描述2、思路3、code4、复杂度分析 494. 目标和1、题目描述2、思路3、code4、复杂度分析 474. 一和零1、题目描述2、思路3、code4、复杂度分析 1049. 最后一块石头的重量 II 题目链接:link 1、题目描述 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块

474.一和零

474.一和零 给你一个二进制字符串数组 strs 和两个整数 m 和 n 。 请你找出并返回 strs 的最大子集的长度,该子集中 最多 有 m 个 0 和 n 个 1 。 如果 x 的所有元素也是 y 的元素,集合 x 是集合 y 的 子集 。 示例 1: 输入:strs = ["10", "0001", "111001", "1", "0"], m = 5, n = 3输出:4

day41| 01背包问题一 01背包问题二(滚动数组篇)416. 分割等和子集 1049.最后一块石头的重量II 494. 目标和 474. 一和零

文章目录 背景介绍01背包问题一思路方法一方法二 01背包问题二(滚动数组篇)思路方法一方法二 416. 分割等和子集思路方法一 1049.最后一块石头的重量II思路方法一 494. 目标和思路方法方法二 回溯法 474. 一和零思路方法 总结 由于笔试的时候会判重,而这里面的代码都是我自己写的,所以以后的博客都要求会员才能看,感谢理解 背景介绍 01背包问题一 01

代码随想录算法训练营第 36 天 |LeetCode1049. 最后一块石头的重量 II LeetCode 494. 目标和 LeetCode 474.一和零

代码随想录算法训练营 Day36 代码随想录算法训练营第 36 天 |LeetCode1049. 最后一块石头的重量 II LeetCode 494. 目标和 LeetCode 474.一和零 目录 代码随想录算法训练营前言LeetCode1049. 最后一块石头的重量 IILeetCode 494. 目标和 LeetCode 474.一和零一、LeetCode1049. 最后一块