Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc9690d2

Browse files
authored
Update 1396-design-underground-system.js
Updated the code by using Classes in JS.
1 parentba67b77 commitc9690d2

File tree

1 file changed

+41
-47
lines changed

1 file changed

+41
-47
lines changed
Lines changed: 41 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,54 @@
1-
varUndergroundSystem=function(){
1+
// https://leetcode.com/problems/design-underground-system/
2+
classUndergroundSystem{
3+
constructor(){
24
this.stationSystem={};
35
this.averageTime={};
4-
};
6+
}
57

6-
/**
7-
* https://leetcode.com/problems/design-underground-system
8-
* Time O(1) | Space O(1)
9-
*@param {number} id
10-
*@param {string} stationName
11-
*@param {number} t
12-
*@return {void}
13-
*/
14-
UndergroundSystem.prototype.checkIn=function(id,stationName,t){
8+
/**
9+
* Time O(1) | Space O(1)
10+
* Records the check-in time and station for a user.
11+
*@param {number} id- User ID
12+
*@param {string} stationName- Check-in station name
13+
*@param {number} t - Check-in time
14+
*@return {void}
15+
*/
16+
checkIn(id,stationName,t){
1517
this.stationSystem[id]=[stationName,'',t,''];
16-
};
18+
}
1719

18-
/** Time O(1) | Space O(1)
19-
*@param {number} id
20-
*@param {string} stationName
21-
*@param {number} t
22-
*@return {void}
23-
*/
24-
UndergroundSystem.prototype.checkOut=function(id,stationName,t){
20+
/**
21+
* Time O(1) | Space O(1)
22+
* Records the check-out time and station for a user, and calculates the average time.
23+
*@param {number} id - User ID
24+
*@param {string} stationName - Check-out station name
25+
*@param {number} t - Check-out time
26+
*@return {void}
27+
*/
28+
checkOut(id,stationName,t){
2529
constuser=this.stationSystem[id];
26-
//1 is the position where we store end station
27-
// 3 is the position where we store end time
2830
user[1]=stationName;
29-
user[3]=t;
30-
console.log(user);
31+
user[3]=t;
3132
conststationHash=`${user[0]}-${user[1]}`;
32-
// console.log(stationHash, this.stationHash);
33-
if(this.averageTime[stationHash]){
34-
this.averageTime[stationHash][0]+=1;
35-
this.averageTime[stationHash][1]+=user[3]-user[2];
33+
if(this.averageTime[stationHash]){
34+
this.averageTime[stationHash][0]+=1;
35+
this.averageTime[stationHash][1]+=user[3]-user[2];
3636
}else{
37-
this.averageTime[stationHash]=[];
38-
this.averageTime[stationHash][0]=1;
39-
this.averageTime[stationHash][1]=user[3]-user[2];
37+
this.averageTime[stationHash]=[];
38+
this.averageTime[stationHash][0]=1;
39+
this.averageTime[stationHash][1]=user[3]-user[2];
4040
}
41-
};
41+
}
4242

43-
/** Time O(1) | Space O(1)
44-
*@param {string} startStation
45-
*@param {string} endStation
46-
*@return {number}
47-
*/
48-
UndergroundSystem.prototype.getAverageTime=function(startStation,endStation){
49-
// console.log(this.averageTime);
43+
/**
44+
* Time O(1) | Space O(1)
45+
* Returns the average time taken to travel between two stations.
46+
*@param {string} startStation - Start station name
47+
*@param {string} endStation - End station name
48+
*@return {number} - Average time in hours
49+
*/
50+
getAverageTime(startStation,endStation){
5051
const[rounds,totalHours]=this.averageTime[`${startStation}-${endStation}`];
5152
returntotalHours/rounds;
52-
};
53-
54-
/**
55-
* Your UndergroundSystem object will be instantiated and called as such:
56-
* var obj = new UndergroundSystem()
57-
* obj.checkIn(id,stationName,t)
58-
* obj.checkOut(id,stationName,t)
59-
* var param_3 = obj.getAverageTime(startStation,endStation)
60-
*/
53+
}
54+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp