diff --git a/solution/1300-1399/1323.Maximum 69 Number/README.md b/solution/1300-1399/1323.Maximum 69 Number/README.md index b3711a9cd6960..8194d52188f17 100644 --- a/solution/1300-1399/1323.Maximum 69 Number/README.md +++ b/solution/1300-1399/1323.Maximum 69 Number/README.md @@ -70,7 +70,7 @@ tags: 我们将数组转换为字符串,然后从左到右遍历字符串,找到第一个出现的 $6$,将其替换为 $9$,然后返回转换后的字符串对应的整数即可。 -时间复杂度 $O(\log num)$,空间复杂度 $O(\log num)$。其中 $num$ 为给定的整数。 +时间复杂度 $O(\log \textit{num})$,空间复杂度 $O(\log \textit{num})$。其中 $\textit{num}$ 为给定的整数。 @@ -114,15 +114,8 @@ public: ```go func maximum69Number(num int) int { - s := strconv.Itoa(num) - nums := []byte(s) - for i, ch := range nums { - if ch == '6' { - nums[i] = '9' - break - } - } - ans, _ := strconv.Atoi(string(nums)) + s := strings.Replace(strconv.Itoa(num), "6", "9", 1) + ans, _ := strconv.Atoi(s) return ans } ``` @@ -166,17 +159,17 @@ class Solution { ```c int maximum69Number(int num) { - int n = 0; - int i = 0; - int t = num; - while (t) { - n++; - if (t % 10 == 6) { - i = n; + char buf[12]; + sprintf(buf, "%d", num); + for (int i = 0; buf[i] != '\0'; i++) { + if (buf[i] == '6') { + buf[i] = '9'; + break; } - t /= 10; } - return num + 3 * pow(10, i - 1); + int ans; + sscanf(buf, "%d", &ans); + return ans; } ``` diff --git a/solution/1300-1399/1323.Maximum 69 Number/README_EN.md b/solution/1300-1399/1323.Maximum 69 Number/README_EN.md index b255ef148389d..f2f5bdb9770c1 100644 --- a/solution/1300-1399/1323.Maximum 69 Number/README_EN.md +++ b/solution/1300-1399/1323.Maximum 69 Number/README_EN.md @@ -29,7 +29,7 @@ tags:
 Input: num = 9669
 Output: 9969
-Explanation: 
+Explanation:
 Changing the first digit results in 6669.
 Changing the second digit results in 9969.
 Changing the third digit results in 9699.
@@ -67,7 +67,11 @@ The maximum number is 9969.
 
 
 
-### Solution 1
+### Solution 1: Greedy
+
+We convert the number to a string, then traverse the string from left to right to find the first occurrence of $6$, replace it with $9$, and then return the integer corresponding to the converted string.
+
+Time complexity $O(\log \textit{num})$, space complexity $O(\log \textit{num})$. Where $\textit{num}$ is the given integer.
 
 
 
@@ -111,15 +115,8 @@ public:
 
 ```go
 func maximum69Number(num int) int {
-	s := strconv.Itoa(num)
-	nums := []byte(s)
-	for i, ch := range nums {
-		if ch == '6' {
-			nums[i] = '9'
-			break
-		}
-	}
-	ans, _ := strconv.Atoi(string(nums))
+	s := strings.Replace(strconv.Itoa(num), "6", "9", 1)
+	ans, _ := strconv.Atoi(s)
 	return ans
 }
 ```
@@ -163,17 +160,17 @@ class Solution {
 
 ```c
 int maximum69Number(int num) {
-    int n = 0;
-    int i = 0;
-    int t = num;
-    while (t) {
-        n++;
-        if (t % 10 == 6) {
-            i = n;
+    char buf[12];
+    sprintf(buf, "%d", num);
+    for (int i = 0; buf[i] != '\0'; i++) {
+        if (buf[i] == '6') {
+            buf[i] = '9';
+            break;
         }
-        t /= 10;
     }
-    return num + 3 * pow(10, i - 1);
+    int ans;
+    sscanf(buf, "%d", &ans);
+    return ans;
 }
 ```
 
diff --git a/solution/1300-1399/1323.Maximum 69 Number/Solution.c b/solution/1300-1399/1323.Maximum 69 Number/Solution.c
index 943cd0198b029..71543fa7af023 100644
--- a/solution/1300-1399/1323.Maximum 69 Number/Solution.c	
+++ b/solution/1300-1399/1323.Maximum 69 Number/Solution.c	
@@ -1,13 +1,13 @@
 int maximum69Number(int num) {
-    int n = 0;
-    int i = 0;
-    int t = num;
-    while (t) {
-        n++;
-        if (t % 10 == 6) {
-            i = n;
+    char buf[12];
+    sprintf(buf, "%d", num);
+    for (int i = 0; buf[i] != '\0'; i++) {
+        if (buf[i] == '6') {
+            buf[i] = '9';
+            break;
         }
-        t /= 10;
     }
-    return num + 3 * pow(10, i - 1);
-}
\ No newline at end of file
+    int ans;
+    sscanf(buf, "%d", &ans);
+    return ans;
+}
diff --git a/solution/1300-1399/1323.Maximum 69 Number/Solution.go b/solution/1300-1399/1323.Maximum 69 Number/Solution.go
index 54efdfb04533b..f07f832736315 100644
--- a/solution/1300-1399/1323.Maximum 69 Number/Solution.go	
+++ b/solution/1300-1399/1323.Maximum 69 Number/Solution.go	
@@ -1,12 +1,5 @@
 func maximum69Number(num int) int {
-	s := strconv.Itoa(num)
-	nums := []byte(s)
-	for i, ch := range nums {
-		if ch == '6' {
-			nums[i] = '9'
-			break
-		}
-	}
-	ans, _ := strconv.Atoi(string(nums))
+	s := strings.Replace(strconv.Itoa(num), "6", "9", 1)
+	ans, _ := strconv.Atoi(s)
 	return ans
-}
\ No newline at end of file
+}