Skip to content

Commit e406357

Browse files
committed
解題,oop
1 parent 0404cca commit e406357

13 files changed

Lines changed: 101 additions & 218 deletions

File tree

javascript/LeetCode/Array/1572.js

Lines changed: 17 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,25 @@
1-
// 1572. Matrix Diagonal Sum
2-
// return the sum of the matrix diagonals. 返回正方形中對角線的總和
3-
// sum X =>
4-
// primary: 1 + 5 + 9
5-
// secondary: 3 + 5 + 7
6-
7-
// 1. 是二維陣列
8-
// 2. 判斷陣列length是奇數或偶數,共有幾個二維陣列
9-
// 3.
10-
// a.第一個二維陣列:找該array中位於第0個位置和最後一個位置的值,之後其他二維陣列則取往後移一個位置的值
11-
// b.最後一個二維陣列:找該array中位於第0個位置和最後一個位置的值
12-
13-
// 二維陣列
14-
// 判斷陣列length是奇數或偶數,共有幾個二維陣列
15-
// ==> 找第一個和最後一個二維陣列中,第0個位置和最後一個位置的值
16-
// 其他二維陣列則取往後移一個位置的值
17-
18-
/*
19-
Input: mat = [[1,2,3],
20-
[4,5,6],
21-
[7,8,9]]
22-
Output: 25
23-
Explanation: Diagonals sum: 1 + 5 + 9 + 3 + 7 = 25
24-
Notice that element mat[1][1] = 5 is counted only once.
25-
*/
26-
271
/**
2+
* 1572. Matrix Diagonal Sum
3+
*
284
* @param {number[][]} mat
295
* @return {number}
306
*/
31-
var diagonalSum = function (mat) {
32-
7+
var diagonalSum = function(mat) {
8+
// 二維陣列,裡面的陣列是奇數的,取該陣列偶數index值;裡面陣列是偶數的,取該陣列奇數index值
339
let result = 0;
34-
let j = mat[0].length - 1;
35-
for (let i = 0; i < mat.length; i++, j--) {
36-
if (i !== j) {
37-
result += mat[i][j];
38-
}
39-
result += mat[i][i];
40-
41-
// $result += (i != j) ? mat[i][j] : mat[i][i];
42-
// let end = endTime(start);
43-
// console.log(end);
10+
let len = mat.length;
11+
let mid = Math.floor(len / 2 );
12+
for (let i = 0; i < len; i++) {
13+
result += mat[i][i];
14+
result += mat[len - 1 - i][i];
15+
}
16+
if (len % 2 != 0) {
17+
result -= mat[mid][mid];
4418
}
4519
return result;
4620
};
47-
const arr = [
48-
[1, 2, 3],
49-
[4, 5, 6],
50-
[7, 8, 9]
51-
];
52-
console.log(diagonalSum(arr));
21+
let mat = [[1,2,3],[4,5,6],[7,8,9]];
22+
// Output: 25
23+
// Explanation: Diagonals sum: 1 + 5 + 9 + 3 + 7 = 25
24+
// Notice that element mat[1][1] = 5 is counted only once.
25+
console.log(diagonalSum(mat));

javascript/LeetCode/Array/1980.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
/**
2+
* 1980. Find Unique Binary String
3+
*
4+
* @param {string[]} nums
5+
* @return {string}
6+
*/
7+
var findDifferentBinaryString = function(nums) {
8+
let res = "";
9+
for(let i = 0;i < nums.length;i++) {
10+
res += (nums[i][i] === '0' ? '1' : '0');
11+
}
12+
return res;
13+
};
14+
let nums = ["01","10"];
15+
// "11"
16+
// console.log(findDifferentBinaryString(nums));

javascript/LeetCode/math/3099.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/**
2+
* 3099. Harshad Number
3+
*
4+
* Harshad:能被其各位數字之和整除
5+
* 如果 x 是Harshad,則傳回 x 各位數字總和;否則,回傳 -1。
6+
* @param {number} x
7+
* @return {number}
8+
*/
9+
var sumOfTheDigitsOfHarshadNumber = function(x) {
10+
// let split = x.toString().split("");
11+
// let sum = 0;
12+
// for(let i = 0;i < split.length;i++) {
13+
// sum+=parseInt(split[i]);
14+
// }
15+
// if(x % sum === 0){
16+
// return sum;
17+
// }
18+
// return -1;
19+
20+
// solution 2.
21+
let ans = 0;
22+
let temp = x;
23+
while(temp > 0){
24+
// 取尾數
25+
ans += temp % 10;
26+
temp = Math.floor(temp / 10);
27+
}
28+
return x % ans === 0 ? ans : -1;
29+
};
30+
let x = 18;
31+
// 9
32+
console.log(sumOfTheDigitsOfHarshadNumber(x));

javascript/index.js

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,19 +1028,24 @@ var closetPair = function(arr1,arr2,x) {
10281028
// [1,30];
10291029
// console.log(closetPair(arr1,arr2,x));
10301030

1031+
1032+
1033+
10311034
/**
1032-
* 1980. Find Unique Binary String
1035+
* 166. Fraction to Recurring Decimal
10331036
*
1034-
* @param {string[]} nums
1037+
* 參數為分子、分母,以字串資料型態回傳分數
1038+
* 如果小數部分重複,則將重複部分放在括號中。
1039+
* 若有很多個答案,任一回傳
1040+
*
1041+
* @param {number} numerator
1042+
* @param {number} denominator
10351043
* @return {string}
10361044
*/
1037-
var findDifferentBinaryString = function(nums) {
1038-
let res = "";
1039-
for(let i = 0;i < nums.length;i++) {
1040-
res += (nums[i][i] === '0' ? '1' : '0');
1041-
}
1042-
return res;
1045+
var fractionToDecimal = function(numerator, denominator) {
1046+
10431047
};
1044-
let nums = ["01","10"];
1045-
// "11"
1046-
console.log(findDifferentBinaryString(nums));
1048+
let numerator = 1, denominator = 2;
1049+
// "0.5"
1050+
// console.log(fractionToDecimal(numerator,denominator));
1051+

javascript/oop.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
// 具名匯出 (Named Export),使用{},匯出多個獨立的功能
2+
import { Vehicle } from "./oop/Vehicle.js ";
3+
4+
car = new Vehicle("Ford","Kuga");
5+
console.log(car.startEngine())

javascript/oop/1_basic_literals.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

javascript/oop/2_constructor.js

Lines changed: 0 additions & 14 deletions
This file was deleted.

javascript/oop/3_prototypes.js

Lines changed: 0 additions & 16 deletions
This file was deleted.

javascript/oop/4_inheritence.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

javascript/oop/5_object_create.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)