CodingTour
ARTS #92

Algorithm

本周选择的算法题是:Permutations

规则

Given an array nums of distinct integers, return all the possible permutations. You can return the answer in any order.

Example 1:

Input: nums = [1,2,3]
Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

Example 2:

Input: nums = [0,1]
Output: [[0,1],[1,0]]

Example 3:

Input: nums = [1]
Output: [[1]]

Constraints:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • All the integers of nums are unique.

Solution

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        ans = []
        self.dfs(nums, [], ans)
        return ans

    def dfs(self, nums, path, result):
        if not nums:
            result.append(path)
        for index, num in enumerate(nums):
            self.dfs(nums[:index] + nums[index+1:], path + [num], result)

Review

What’s New in Flutter 2

Flutter 团队带来了很有诚意的更新!

  • 这是 Flutter 提供的第一个对 Web 支持达到稳定的版本

  • 可在开发阶段检测 Null 错误,提高了安全性

  • 桌面端的稳定版将在今年晚些时候发布,现在是预览版

  • platform adaptive - 一种可适应各种屏幕大小、输入方式(鼠标,键盘,手势)和设备的能力,文章里提到 Flutter Folio 有此能力,可以在 GitHub 上查看该应用的源码

  • 发布了一个广告 SDK: Google Mobile Ads SDK for Flutter

  • 关于 iOS 的一点小功能

  • 两个新组件 - Autocomplete 和 ScaffoldMessenger

  • 多引擎实例的支持 - 以前只能一个 App 集成一个实例(Flutter Engine),对纯 Flutter 应用来说这不是问题,但在混合开发情况下,你既不能一个 View 对应一个实例 - 这会把内存爆掉,又没有一种有效的方法管理 Flutter、Native 之间的导航状态,这才诞生了 flutter_boost,但后者自身的问题也很多,它甚至还会限制你所使用的 Flutter 版本;Flutter 2 发布后就不存在这个问题了,额外的引擎实例所占用的内存将减少 99% - 180kB,理论上可以做到一个 View 就对应一个 Engine,这样确实就不需要 flutter boost 了

  • Flutter Fix - 提供了很多工具、插件帮助开发者修复代码中潜在的错误

  • Flutter DevTools - 更强大了!甚至在 DevTools 运行之前就能检测运行时错误,虽然目前的检测范围只有渲染相关的错误,但 Flutter 团队表示未来会尽可能覆盖到全部类型的错误!除此之外, DevTools 还能检测尺寸过大的图片,并在运行时反转它 - 以便开发者能轻易找到它。还有很多…

  • 更好的 IDE 插件 - 改善了在 Android Studio、IntelliJ 及 VS Code 下的开发体验

  • DartPad 也增加了对 Flutter 2 的支持

  • 生态 - Flutter 生态下的库、插件也得到广泛的更新,比如 video_player 就合并了大约 30 个 PR

其中我最感兴趣的就是多引擎实例,这将使我们有机会重新思考 Flutter 和 Native 如何结合的问题。至于 platform adaptive,还需要仔细分析是如何实现的,如果对业务方有太高的侵入性就不太合适了。

Tip

要判断页面中是否包括数学符号用 math/tex 还不够,得在加上 \[ 的判断。

Share

ROT-13