给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。
有一个需要密码才能打开的保险箱。密码是 n 位数, 密码的每一位都是范围 [0, k - 1] 中的一个数字。 保险箱有一种特殊的密码校验方法,你可以随意输入密码序列,保险箱会自动记住 最后 n 位输入 ,如果匹配,则能够打开保险箱。 • 例如,正确的密码是 "345" ,并且你输入的是 "012345" : ◦ 输入 0 之后,最后 3 位输入是 "0" ,不正确。 ◦ 输入 1 之后,最后 3 位输入是 "01" ,不正确。 ◦ 输入 2 之后,最后 3 位输入是 "012" ,不正确。 ◦ 输入 3 之后,最后 3 位输入是 "123" ,不正确。 ◦ 输入 4 之后,最后 3 位输入是 "234" ,不正确。 ◦ 输入 5 之后,最后 3 位输入是 "345" ,正确,打开保险箱。 在只知道密码位数 n 和范围边界 k 的前提下,请你找出并返回确保在输入的 某个时刻 能够打开保险箱的任一 最短 密码序列 。
有一个 m x n 大小的矩形蛋糕,需要切成 1 x 1 的小块。 给你整数 m ,n 和两个数组: • horizontalCut 的大小为 m - 1 ,其中 horizontalCut[i] 表示沿着水平线 i 切蛋糕的开销。 • verticalCut 的大小为 n - 1 ,其中 verticalCut[j] 表示沿着垂直线 j 切蛋糕的开销。 一次操作中,你可以选择任意不是 1 x 1 大小的矩形蛋糕并执行以下操作之一: 1. 沿着水平线 i 切开蛋糕,开销为 horizontalCut[i] 。 2. 沿着垂直线 j 切开蛋糕,开销为 verticalCut[j] 。 每次操作后,这块蛋糕都被切成两个独立的小蛋糕。 每次操作的开销都为最开始对应切割线的开销,并且不会改变。 请你返回将蛋糕全部切成 1 x 1 的蛋糕块的 最小 总开销。
一个公司在全国有 n 个分部,它们之间有的有道路连接。一开始,所有分部通过这些道路两两之间互相可以到达。 公司意识到在分部之间旅行花费了太多时间,所以它们决定关闭一些分部(也可能不关闭任何分部),同时保证剩下的分部之间两两互相可以到达且最远距离不超过 maxDistance 。 两个分部之间的 距离 是通过道路长度之和的 最小值 。 给你整数 n ,maxDistance 和下标从 0 开始的二维整数数组 roads ,其中 roads[i] = [ui, vi, wi] 表示一条从 ui 到 vi 长度为 wi的 无向 道路。 请你返回关闭分部的可行方案数目,满足每个方案里剩余分部之间的最远距离不超过 maxDistance。 注意,关闭一个分部后,与之相连的所有道路不可通行。 注意,两个分部之间可能会有多条道路。