题目大意
https://leetcode.com/problems/divide-two-integers/
两个int的除法,要求不能用乘法,除法,模运算
题目分析
此题要利用移位操作,除数每次向左移1位,因此增长量为指数级。但要注意当被除数为INT_MIN,除数为-1时产生结果会溢出的情况。本题如果借助long能够方便地处理一些int的越界情况,但我的做法是加了很多的预判,因此没有用long。
https://leetcode.com/problems/divide-two-integers/
两个int的除法,要求不能用乘法,除法,模运算
此题要利用移位操作,除数每次向左移1位,因此增长量为指数级。但要注意当被除数为INT_MIN,除数为-1时产生结果会溢出的情况。本题如果借助long能够方便地处理一些int的越界情况,但我的做法是加了很多的预判,因此没有用long。
https://leetcode.com/problems/4sum/
4个数之和等于target,让你找出所有组合,注意输出的组合中不能有重复的
此题跟3sum的解法类似,还是先对原数组排序,然后先枚举两个数,剩下的两个数采用双指针不断移动的思路,因此时间复杂度是O(n^3),需要注意不要把重复的加进结果中,具体可以看代码中注释部分。
https://leetcode.com/problems/3sum/
4个数之和等于target,让你找出所有组合,注意输出的组合中不能有重复的
对原数组进行排序,然后枚举第一个数,剩下的两个数采用双指针不断移动的思路,因此时间复杂度是O(n^2),需要注意不要把重复的加进结果中,具体可以看代码中注释部分。
https://leetcode.com/problems/generate-parentheses/
生成所有n个左括号和n个右括号的合法的组合
经典的深度优先搜索或者说回溯法。