
困难
sunny_daily
java、数据结构、leetcode、企业数字化转型!在线免费接需求!!!
展开
-
31-下一个排列
实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。输入:nums = [1,2,3],输出:[1,3,2] 输入[1,2,3],则1,2,3三个元素构成的数组为[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1],则下一个元素为[1,3,2]。具体解析过程看代码注释 ...原创 2021-09-29 18:06:06 · 115 阅读 · 0 评论 -
22-括号的生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。有效括号组合需满足:左括号必须以正确的顺序闭合。如输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"]。 不管n为多少,每个位置智能放左括号或者右括号,只有两种情况。因此暴力算法就是对每个位置都进行尝试,如果放左括号不行就放右括号,所以时间复杂度很高。改进算法生效的前提是当括号有效时,则左括号数肯定是等于n,所以遍历的...原创 2021-09-29 15:27:22 · 116 阅读 · 0 评论