CodeTop100 Day15

43、括号生成

递归调用API dfs,然后想明白运行条件,生成n对也就是左右括号都为n个,dfs(int left,int right,String cur)     输入dfs(n,n," "),dfs出口为当left==0&&right==0,就把结果放入res集合中,

优先放入左括号,if(left>0) dfs(left-1,right,cur+"("),只有当前放的左括号大于右括号才能放右括号,就是说剩下的右括号n要大于左括号剩下的值,right>left dfs(left,right-1,cur+")"),

举个例子,当n=2时候,dfs有两种路径,dfs(2,2,"")->dfs(1,2,"(")->dfs(0,2,"(")->dfs(0,1,")")->dfs(0,0,")")也就是(()),第二种是dfs(2,2,"")->dfs(1,2,"(")->dfs(1,1,")")->dfs(0,1,"(")->dfs(0,0,")")也就是()(),明白这个例子上面的也就明白了

44、字符串转换整数

该题还是比较简单的,根据题意进行模拟,分类讨论就可以了

首部有空格就去掉,判断符号位,遇到首个非数字时候就停下然后返回结果,数字字符就减去0的ASCII码,每次拼接乘以10,然后提前判断是否越界,最后返回结果即可

45、x的平方根

采用二分法,left=0,right=x,当左右指针差大于1就进入循环,mid=(left+right)/2;如果x/mid<mid  right=mid,否则left=mid,缩小区间,最后left就是答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值