我最近一直在学习 Flutter 并遇到了一些奇怪的问题,当我单击 TextField 时,将显示键盘,并将build为托管和所有祖先小部件调用。
我读过当 TextField 单击时,该build方法将被调用,然后整个小部件将被重建,但我遇到的情况有点奇怪,因为在第一个打开的小部件上没有调用构建。
设想:
1 - 打开应用程序。
2 - 第一个小部件加载并打印在屏幕上:"First build called",当我点击 TextField 时,键盘会弹出,控制台上没有打印任何内容。
3 - 点击“打开第二个”,第二个小部件加载并打印在屏幕上: “第二个构建调用”,当我点击文本字段时,键盘弹出并打印:“第二个构建调用”(在步骤[1]中)没有打印!)。
4 - 点击“首先打开”,第一个小部件再次加载并打印在屏幕上:“First build called”,当我点击 TextField 时,键盘弹出并打印:“Second build called First build called”(在步骤 [1] 用于未打印任何内容的同一个小部件!)。
代码:
void main() {
runApp(MaterialApp(home: First()));
}
class First extends StatelessWidget {
@override
Widget build(BuildContext context) {
print('First build called');
return Scaffold(
appBar: AppBar(
title: Text("HI Ramadan"),
),
body: Column( …Run Code Online (Sandbox Code Playgroud) 我有以下图表:
最佳解决方案是从顶点 (3) 开始 dfs,然后我将得到一个分量,但是当我们从顶点 (1) 开始 dfs 时,则 (3) 我将得到两个分量。问题是:我想知道这个图中有多少个分量?或者以其他方式,覆盖所有图形所需的最少 dfs 数量是多少?
这样做所需的算法是什么?
循环 n 个项目(如数组)然后循环 (n-1) 然后循环 (n-2) 等等的算法的复杂性是多少 像:
Loop(int[] array) {
for (int i=0; i<array.Length; i++) {
//do some thing
}
}
Main() {
Loop({1, 2, 3, 4});
Loop({1, 2, 3});
Loop({1, 2});
Loop({1});
//What the complexity of this code.
}
Run Code Online (Sandbox Code Playgroud)
前面的程序的复杂度是多少?