我有一个像下面数组的像素数组,我想要区分1的两个"组".计划是在大量类似的像素阵列中执行此操作,因此我需要找到一种方法来提高效率.
也许我可以将所有1个位置添加到一个单独的数组并进行一些搜索以找到连接的那些,但它应该是更好的方法.是否有任何算法可以找到这样的连通组件?
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, …Run Code Online (Sandbox Code Playgroud) 我正在尝试为冻结包生成的联合实现 toJson/fromJson 。假设我们有一个类,如下所示:
@freezed
abstract class Result with _$Result {
const factory Result.error(String message) = Error;
const factory Result.success() = Success;
factory Result.fromJson(Map<String, dynamic> json) => _$ResultFromJson(json);
}
Run Code Online (Sandbox Code Playgroud)
我想要/fromJson 的行为如下:
Result error = Result.error('some error');
expect(error.toJson(), {'type': 'error', 'message': 'some error'});
expect(Result.fromJson({'type': 'error', 'message': 'some error'}), error);
Run Code Online (Sandbox Code Playgroud)
文档中说明您可以使用 a JsonConverter (fromJSON with multiple classes),但我不知道如何正确使用它。
class ResultConverter implements JsonConverter<Result, Map<String, dynamic>> {
const ResultConverter();
@override
Result fromJson(Map<String, dynamic> json) {
if (json == null) {
return null;
} …Run Code Online (Sandbox Code Playgroud)