class Solution { template<typename Com> bool dfs(int k, const int& target, const Com& com) { if (k == target) return true; else if (com(k, target)) return false; else { if ((k!=2*k+1)&&dfs(2 * k + 1, target, com)) return true; if ((k!=3*k+1)&&dfs(3 * k + 1, target, com)) return true; return false; } } public: bool kInArray(int k, int target) { if (k >= 0) return dfs(k, target, std::greater<int>()); else return dfs(k,target,std::less<int>()); } }; 当测试用例为[-1,-4]的时候楼主的dfs2会过不了,存在死递归
点赞 1

相关推荐

点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务