File tree Expand file tree Collapse file tree 2 files changed +77
-0
lines changed Expand file tree Collapse file tree 2 files changed +77
-0
lines changed Original file line number Diff line number Diff line change 1+ // 根据题目说明,两者都是正数
2+ // 基本思路是使用广度优先搜索,但是很明显的超时了
3+ // 明显超时
4+
5+ class Solution
6+ {
7+ public:
8+ int brokenCalc (int start, int end)
9+ {
10+ if (start >= end)
11+ {
12+ return start - end;
13+ }
14+
15+ queue<int > memo;
16+ memo.push (start);
17+
18+ int layer = 0 ;
19+ while (!memo.empty ())
20+ {
21+ for (int i = memo.size (); i > 0 ; --i)
22+ {
23+ int temp = memo.front ();
24+ memo.pop ();
25+
26+ if (temp == end)
27+ {
28+ return layer;
29+ }
30+
31+ if (temp > 1 ) memo.push (temp - 1 );
32+ if (temp < end) memo.push (temp * 2 );
33+ }
34+ ++layer;
35+ }
36+
37+ return -1 ;
38+ }
39+ };
40+
41+ // 改成递归贪心
42+ // Runtime: 0 ms, faster than 100.00% of C++ online submissions for Broken Calculator.
43+ // Memory Usage: 8.2 MB, less than 80.00% of C++ online submissions for Broken Calculator.
44+
45+ class Solution
46+ {
47+ public:
48+ int brokenCalc (int start, int end)
49+ {
50+ if (start >= end)
51+ {
52+ return start - end;
53+ }
54+
55+ if (end % 2 == 0 )
56+ {
57+ return brokenCalc (start, end / 2 ) + 1 ;
58+ }
59+ else
60+ {
61+ return brokenCalc (start, end + 1 ) + 1 ;
62+ }
63+ }
64+ };
Original file line number Diff line number Diff line change 1+ # Runtime: 40 ms, faster than 27.06% of Python3 online submissions for Broken Calculator.
2+ # Memory Usage: 14 MB, less than 50.00% of Python3 online submissions for Broken Calculator.
3+
4+ class Solution :
5+ def brokenCalc (self , start : int , end : int ) -> int :
6+
7+ if start >= end :
8+ return start - end
9+
10+ if end % 2 is 0 :
11+ return self .brokenCalc (start , end // 2 ) + 1
12+ else :
13+ return self .brokenCalc (start , end + 1 ) + 1
You can’t perform that action at this time.
0 commit comments