51CTO首页
AI.x社区
博客
学堂
精品班
软考社区
免费课
企业培训
鸿蒙开发者社区
信创认证
公众号矩阵
移动端
视频课
免费课
排行榜
短视频
直播课
软考学堂
全部课程
软考
信创认证
华为认证
厂商认证
IT技术
PMP项目管理
免费题库
在线学习
文章
资源
问答
课堂
专栏
直播
51CTO
鸿蒙开发者社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
鸿蒙开发者社区订阅号
51CTO软考
51CTO学堂APP
51CTO学堂企业版APP
鸿蒙开发者社区视频号
51CTO软考题库
鸿蒙开发者社区
首页
帖子
问答
资源
课堂
直播
发现
登录/注册
51CTO
中国优质的IT技术网站
51CTO博客
专业IT技术创作平台
51CTO学堂
IT职业在线教育平台
活动
短视频
专栏
极客Show
鸿蒙技术特刊
我的关注
全部帖子
操作系统
OpenHarmony
HarmonyOS
其他
应用开发
卡片开发
三方库
IDE
其他
设备开发
海思开发板
树莓派
其他
框架语言
C/C++
Java
JavaScript
ArkUI / eTS
其他
其他
物联网
云原生
数据库
操作系统
大数据
人工智能
开发语言
其他
社区版务
社区公告
社区生活
社区规则
意见反馈
社区活动
默认
发布时间
热度
原创
精华
热门标签
HarmonyOS
鸿蒙
ArkTS
Flutter 嵌套地狱?不存在的,ConstraintLayout 来解救!(一)
从Android转向Flutter后,受不了没有ConstraintLayout的日子,更反感嵌套地狱,网上的优化方法都治标不治本。于是继2016年开源MagicIndicator(9100+star)以后,我只能再次发力了。点击阅读原文进入GitHub主页。FlutterConstraintLayout一个超级强大的Stack,使用约束构建极为灵活的布局,和Android下的ConstraintLayout和iOS下的AutoLayout类似。但代码实现却高效得多,它具有O(n)的布局时间复杂度,无需线性方程求解。它是一...
xbkong
0回复
8089浏览
Flutter
ConstraintLayout
weiV DSL 已经设计完成,Widget、Element、View 架构已经搭建好
昨天早上突发奇想就开干,现在展示一下最新的开发成果。DSL样式如下:classMainActivity:WeiVActivity(){privatevarswitchfalseprivatevartext"weiV"overridefunbuild():Widget{returnWeiV{Flex(orientationLinearLayout.HORIZONTAL){Text(texttext,textSize14f)Text(texttext)Flex(keyKey(),orientationLinearLayout.VERTICAL){if(switch){Text(texttext)}else{Text(texttext)}repeat(10){Button(texttext+it)}for(iin1..5){Te...
xbkong
0回复
6886浏览
weiV
必须干掉这10道,面试100%遇到!(四)
0X08TOPK问题TOPK问题真的非常经典,通常问的有最小的K个数,寻找第K大都是TOPK这种问题,这里就用力扣215寻找数组第K大元素作为板子。详细分析:一文拿捏TOPKTOPK的问题解决思路有很多,如果优化的冒泡或者简单选择排序,时间复杂度为O(nk),使用优化的堆排序为O(n+klogn),不过掌握快排的变形就可以应付大体上的所有问题了(面试官要是让你手写堆排序那真是有点难为你了)。快排每次确定一个数pivot位置,将数分成两部分:左面的...
joytrian
0回复
6767浏览
算法
动态规划,它来了(三)
最长公共子序列最长公共子序列也成为LCS.出现频率非常高!给定两个字符串text1和text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回0。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace"是"abcde"的子序列,但"aec"不是"abcde"的子序列。两个字符串的公共子序列是这两个字符串所共同拥有的...
joytrian
0回复
7533浏览
算法
weiV 优雅的支持 Java 并运行起来了
weiV(发音同wave)wave.webpif("weiV""View".reversed()){Log.d("weiV","它意味着控制反转,你始终应该直接操作UI的描述Widget而不是直接操作View。")}它具有以下优势:1.声明式的UI写法让原生开发效率翻倍2.达到或超越View系统的性能1.我将我的FlutterConstraintLayout移植到Android,依托它先进的布局算法,在不引入固有特性测量的情况下,让View树中的子元素在任何情况都只会被layout一次,使得任意嵌套不会引起性能问题。...
xbkong
0回复
7373浏览
weiV
Flutter ConstraintLayout 1.6 发布,带来了创新的开放式语法
说明开放式语法是我发明的新词,它是啥意思呢?我们看看代码就明白了。classOpenGrammarExampleextendsStatelessWidget{constOpenGrammarExample({Keykey}):super(key:key);overrideWidgetbuild(BuildContextcontext){returnScaffold(body:ConstraintLayout().open((){if(DateTime.now().millisecond%20){Container(color:Colors.red,).applyConstraint(size:200,centerTo:parent,);}else{Container(color:Colors.yellow,).appl...
xbkong
0回复
8741浏览
Flutter
ConstraintLayout
weiV
Flutter 嵌套地狱?不存在的,ConstraintLayout 来解救!(四)
7.marginFlutterWeb在线示例margin.pngclassMarginExampleextendsStatelessWidget{constMarginExample({Keykey}):super(key:key);overrideWidgetbuild(BuildContextcontext){returnScaffold(body:ConstraintLayout(children:[Container(color:constColor(0xFF005BBB),).applyConstraint(size:50,topLeftTo:parent,margin:constEdgeInsets.only(left:20,top:100,),),Container(color:constColor(0xFFFFD500),).applyConstraint(s...
xbkong
0回复
6676浏览
Flutter
ConstraintLayout
Flutter 嵌套地狱?不存在的,ConstraintLayout 来解救!(三)
4.网格FlutterWeb在线示例grid.pngclassGridExampleextendsStatelessWidget{constGridExample({Keykey}):super(key:key);overrideWidgetbuild(BuildContextcontext){List<Color>colors[Colors.redAccent,Colors.greenAccent,Colors.blueAccent,Colors.orangeAccent,Colors.yellow,Colors.pink,Colors.lightBlueAccent];returnScaffold(body:ConstraintLayout(children:[...constraintGrid(id:ConstraintId('grid'),left:parent....
xbkong
0回复
7614浏览
Flutter
ConstraintLayout
Flutter 嵌套地狱?不存在的,ConstraintLayout 来解救!(二)
高级用法1.引导线FlutterWeb在线示例guideline.pngclassGuidelineExampleextendsStatelessWidget{constGuidelineExample({Keykey}):super(key:key);overrideWidgetbuild(BuildContextcontext){ConstraintIdguidelineConstraintId('guideline');returnMaterialApp(home:Scaffold(body:ConstraintLayout(children:[Container(color:constColor(0xFF005BBB),).applyConstraint(width:matchParent,height:matchConstraint,top:paren...
xbkong
0回复
6554浏览
Flutter
ConstraintLayout
必须干掉这10道,面试100%遇到!(三)
0X05二叉树层序(锯齿)遍历二叉树的遍历,对应力扣102,107,103.详细分析:一次面试,被二叉树层序遍历打爆了如果普通二叉树层序遍历,也不是什么困难的问题,但是它会有个分层返回结果的操作,就需要你详细考虑了。很多人会用两个容器(队列)进行分层的操作,这里其实可以直接使用一个队列,我们首先记录枚举前队列大小len,然后根据这个大小len去枚举遍历就可以得到完整的该层数据了。还有一个难点就是二叉树的锯齿层序(也叫之...
joytrian
0回复
7134浏览
算法
Flutter 嵌套地狱?不存在的,ConstraintLayout 来解救!(五)
性能优化1.当布局复杂时,如果子元素需要频繁重绘,可以考虑使用RepaintBoundary。当然合成Layer也有开销,所以需要合理使用。classOffPaintExampleextendsStatelessWidget{constOffPaintExample({Keykey}):super(key:key);overrideWidgetbuild(BuildContextcontext){returnMaterialApp(home:Scaffold(body:ConstraintLayout(children:[Container(color:Colors.orangeAccent,).offPaint().applyConstraint(width:200,height:200...
xbkong
0回复
8033浏览
Flutter
ConstraintLayout
动态规划,它来了(二)
最长递增子序列最长递增子序列,也称为LIS,是出现非常高频的动态规划算法之一。这里对应力扣300给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。输入:nums[0,1,0,3,2,3]输出:4解释:最长递增子序列是[0,1,2,3],因此长度为4。对于最长递增子序列,如果不考虑动态规划的方法,使...
joytrian
0回复
5747浏览
算法
动态规划,它来了(一)
前言大家好,我是bigsai,好久不见,甚是想念(天天想念)!很久前就有小伙伴被动态规划所折磨,确实,很多题动态规划确实太难看出了了,甚至有的题看了题解理解起来都费劲半天。动态规划的范围虽然确实是很广很难,但是从整个动态规划出现的频率来看,这几种基础的动态规划理解容易,学习起来压力不大,并且出现频率非常高。这几个常见的动态规划有:连续子数组最大和,子数组的最大乘积,最长递增子序列(LIS),最长公共子序列(L...
joytrian
0回复
7736浏览
算法
必须干掉这10道,面试100%遇到!(二)
0X03环形链表对应力扣141和力扣142,力扣141环形链表要求为:给定一个链表,判断链表中是否有环,用O(1)内存解决。详细分析:环形链表找入口,真的太妙了这个问题利用快慢双指针比较高效,快指针fast每次走2步,slow每次走1步,慢指针走n步到尾时候快指针走了2n步,而环的大小一定小于等于n所以一定会相遇,如果相遇那么说明有环,如果不相遇fast先为null说明无环。具体代码为:publicclassSolution{publicbooleanhasCycle(List...
joytrian
0回复
7717浏览
算法
必须干掉这10道,面试100%遇到!(一)
大家好,我是bigsai,好久不见,天天想念。最近不少小伙伴跟我交流刷题肿么刷,我给的建议就是先剑指offer和力扣hot100,在这些题中还有些重要程度和出现频率是非常非常高的,今天给大家分享当今出现频率最高的10道算法题,最近铺天盖地的出现,学到就是赚到。本篇主要内容为:0X01翻转链表力扣206和剑指offer24原题,题意为:给你单链表的头节点head,请你反转链表,并返回反转后的链表。分析:翻转链表,本意是不创建新的链表...
joytrian
0回复
6279浏览
算法
最小生成树,秒懂!(一)
前言在数据结构与算法的图论中,(生成)最小生成树算法是一种常用并且和生活贴切比较近的一种算法。但是可能很多人对概念不是很清楚,什么是最小生成树一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。通俗易懂的讲就是最小生成树包含原图的所有节点而只用最少的边和最小的权值距离。因为n个...
joytrian
0回复
8720浏览
算法
热乎着,昨晚阿里这题真太绝了
前言大家好,我是bigsai,好久不见甚是想念。昨晚有个同学参加了阿里的笔试题,笔试完后同学说这次笔试感觉难,跟我说了其中一道题,我看了感觉还是挺有质量的,看着这个难度都是第二题,总共三题感觉还是有难度的(瑟瑟发抖),想着还是和大家分享一下。描述一个正m边形,他想知道多边形中等腰锐角三角形的数量。(三角形的顶点要在多边形的顶点上)不同的三角形的定义:两个三角形,只要有一个点不在同一个位置上就算做不同的三角...
joytrian
0回复
6640浏览
算法
Prometheus监控神器-服务发现篇(三)
本章节讲解服务发现与Relabelling的机制与范例。通过服务发现的方式,我们可以在不重启Prometheus服务的情况下动态的发现需要监控的Target实例信息。如上图所示,对于线上环境我们可能会划分为:dev,stage,prod不同的集群。每一个集群运行多个主机节点,每个服务器节点上运行一个NodeExporter实例。NodeExporter实例会自动注册到Consul中,而Prometheus则根据Consul返回的NodeExporter实例信息动态的维护Target列表,从而向这些T...
icegoblin
0回复
7641浏览
Prometheus
最小生成树,秒懂!(二)
代码实现上面分析了逻辑实现。下面我们用代码简单实现上述的算法。primpackage图论;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Comparator;importjava.util.List;importjava.util.PriorityQueue;importjava.util.Queue;publicclassprim{publicstaticvoidmain(String[]args){intminlength0;最小生成树的最短路径长度intmax66666;Stringcityname[]{"北京","武汉","南京","上海","杭州","广州","深圳"};in...
joytrian
0回复
7057浏览
算法
字节一次面试,被二叉树的层序遍历捏爆了!
前言大家好,我是bigsai。在数据结构与算法中,二叉树无论是考研、笔试都是非常高频的考点内容,在二叉树中,二叉树的遍历又是非常重要的知识点,有个小老弟说他字节面试时候二叉树之字形打印紧张没写出来,力扣原题自己还写过很懊恼,我也回想起自己刚学习时候那段"混乱的"斗争,今天给大家讲讲二叉树的层序遍历。前面介绍了二叉排序树的构造和基本方法的实现,遍历也是比较重要的一环,并且二叉树的层序遍历也是bfs的最简单情...
joytrian
0回复
8938浏览
算法
暂无内容
1
59
60
61
62
63
64
65
66
67
82
精选
客服
订阅鸿蒙技术特刊,精选内容抢先看
微信扫码关注,即刻订阅