feat: 2025-10-28打卡
This commit is contained in:
33
50.pow-x-n.java
Normal file
33
50.pow-x-n.java
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* @lc app=leetcode id=50 lang=java
|
||||
*
|
||||
* [50] Pow(x, n)
|
||||
*/
|
||||
|
||||
// @lc code=start
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
class Solution {
|
||||
public double myPow(double x, int n) {
|
||||
Map<Long, Double> track = new HashMap<>();
|
||||
long m = n;
|
||||
return m>=0?myPow(x, m, track):1/myPow(x, -m, track);
|
||||
}
|
||||
|
||||
private double myPow(double x, long n, Map<Long, Double> track) {
|
||||
if(n < 0) {
|
||||
throw new RuntimeException("not supported number");
|
||||
} else if(n <= 1) {
|
||||
return n==0?1:x;
|
||||
} else if(track.containsKey(n)) {
|
||||
return track.get(n);
|
||||
}
|
||||
long l = n / 2;
|
||||
double r = myPow(x, l, track) * myPow(x, n-l, track);
|
||||
track.put(n, r);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
// @lc code=end
|
||||
|
||||
Reference in New Issue
Block a user