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

Commit4151859

Browse files
committed
add more
1 parent77db876 commit4151859

8 files changed

+230
-78
lines changed

‎112 Path Sum.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,31 @@ var hasPathSum = function(root, sum) {
2424
}
2525

2626
returnhasPathSum(root.left,sum-root.val)||hasPathSum(root.right,sum-root.val);
27+
};
28+
29+
/**
30+
* Definition for a binary tree node.
31+
* function TreeNode(val) {
32+
* this.val = val;
33+
* this.left = this.right = null;
34+
* }
35+
*/
36+
/**
37+
*@param {TreeNode} root
38+
*@param {number} sum
39+
*@return {boolean}
40+
*/
41+
varhasPathSum=function(root,sum){
42+
if(root===null){
43+
returnfalse;
44+
}
45+
46+
varleft=root.left;
47+
varright=root.right;
48+
49+
if(left===null&&right===null){
50+
returnroot.val===sum;
51+
}
52+
53+
returnhasPathSum(left,sum-root.val)||hasPathSum(right,sum-root.val);
2754
};

‎141 Linked List Cycle.js

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,44 @@
22
// Language: Javascript
33
// Problem: https://leetcode.com/problems/linked-list-cycle/
44
// Author: Chihung Yu
5+
/**
6+
* Definition for singly-linked list.
7+
* function ListNode(val) {
8+
* this.val = val;
9+
* this.next = null;
10+
* }
11+
*/
12+
13+
/**
14+
*@param {ListNode} head
15+
*@return {boolean}
16+
*/
17+
// var hasCycle = function(head) {
18+
// if(head === null || head.next === null){
19+
// return false;
20+
// }
21+
22+
// var faster = head.next;
23+
// var slower = head;
24+
25+
// while(faster && slower){
26+
// if(faster.val === slower.val){
27+
// return true;
28+
// }
29+
// faster = faster.next;
30+
31+
// if(faster === null){
32+
// return false;
33+
// } else {
34+
// faster = faster.next;
35+
// }
36+
37+
// slower = slower.next;
38+
// }
39+
40+
// return false;
41+
// };
42+
543
/**
644
* Definition for singly-linked list.
745
* function ListNode(val) {
@@ -15,26 +53,27 @@
1553
*@return {boolean}
1654
*/
1755
varhasCycle=function(head){
18-
if(head===null||head.next===null){
56+
if(head===null){
1957
returnfalse;
2058
}
59+
60+
varnode1=head;
61+
varnode2=head;
62+
node2=node2.next;
2163

22-
varfaster=head.next;
23-
varslower=head;
24-
25-
while(faster&&slower){
26-
if(faster.val===slower.val){
64+
while(node1!==null&&node2!==null){
65+
if(node1.val===node2.val){
2766
returntrue;
2867
}
29-
faster=faster.next;
68+
69+
node1=node1.next;
70+
node2=node2.next;
3071

31-
if(faster===null){
32-
returnfalse;
33-
}else{
34-
faster=faster.next;
72+
if(node2!==null){
73+
node2=node2.next;
3574
}
3675

37-
slower=slower.next;
76+
3877
}
3978

4079
returnfalse;

‎190 Reverse Bits.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99
varreverseBits=function(n){
1010
varresult=0;
1111

12-
for(vari=0;i<32;i++){
12+
for(vari=0;i<31;i++){
1313
result<<=1;
1414
result|=n&1;
15-
n>>=1;
15+
16+
n>>>=1;
17+
console.log(result,n);
1618
}
1719

1820
returnMath.abs(result);
19-
};
21+
};
22+
23+
console.log(reverseBits(4294967295));

‎242 Valid Anagram.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,43 @@ var isAnagram = function(s, t) {
3838
}
3939

4040
returntrue;
41+
};
42+
43+
44+
45+
46+
/**
47+
*@param {string} s
48+
*@param {string} t
49+
*@return {boolean}
50+
*/
51+
varisAnagram=function(s,t){
52+
if(s===null||t===null||s.length!==t.length){
53+
returnfalse;
54+
}
55+
56+
varhash={};
57+
vari;
58+
for(i=0;i<s.length;i++){
59+
varsval=s[i];
60+
vartval=t[i];
61+
62+
if(hash[sval]===undefined){
63+
hash[sval]=0;
64+
}
65+
66+
if(hash[tval]===undefined){
67+
hash[tval]=0;
68+
}
69+
hash[sval]++;
70+
hash[tval]--;
71+
}
72+
73+
for(varjinhash){
74+
if(hash[j]!==0){
75+
returnfalse;
76+
}
77+
}
78+
79+
returntrue;
4180
};

‎26 Remove Duplicates from Sorted Array.js

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,25 @@ var removeDuplicates = function(nums) {
5858
};
5959

6060

61-
// [tricky]
61+
// [tricky]
62+
63+
/**
64+
*@param {number[]} nums
65+
*@return {number}
66+
*/
67+
varremoveDuplicates=function(nums){
68+
varhash={};
69+
varcur=0;
70+
71+
for(vari=0;i<nums.length;i++){
72+
varnum=nums[i];
73+
74+
if(hash[num]===undefined){
75+
hash[num]=true;
76+
nums[cur]=num;
77+
cur++;
78+
}
79+
}
80+
81+
returncur;
82+
};

‎278 First Bad Version.js

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
/**
1616
* Definition for isBadVersion()
17-
*
17+
*
1818
*@param {integer} version number
1919
*@return {boolean} whether the version is bad
2020
* isBadVersion = function(version) {
@@ -35,18 +35,57 @@ var solution = function(isBadVersion) {
3535
varbeg=0;
3636
varend=n;
3737
varlastBad;
38-
38+
3939
while(beg<=end){
4040
varmid=beg+Math.floor((end-beg)/2);
4141
if(isBadVersion(mid)){
4242
// everything including and after are bad version
4343
lastBad=mid;
4444
end=mid-1;
4545
}else{
46-
beg=mid+1;
46+
beg=mid+1;
4747
}
4848
}
49-
49+
5050
returnlastBad;
5151
};
52-
};
52+
};
53+
54+
55+
56+
/**
57+
* Definition for isBadVersion()
58+
*
59+
*@param {integer} version number
60+
*@return {boolean} whether the version is bad
61+
* isBadVersion = function(version) {
62+
* ...
63+
* };
64+
*/
65+
66+
/**
67+
*@param {function} isBadVersion()
68+
*@return {function}
69+
*/
70+
varsolution=function(isBadVersion){
71+
/**
72+
*@param {integer} n Total versions
73+
*@return {integer} The first bad version
74+
*/
75+
returnfunction(n){
76+
varleft=1;
77+
varright=n;
78+
79+
while(left<right){
80+
varmid=left+Math.floor((right-left)/2);
81+
82+
if(isBadVersion(mid)){
83+
right=mid;
84+
}else{
85+
left=mid+1;
86+
}
87+
}
88+
89+
returnleft;
90+
};
91+
};

‎35 Search Insert Position.js

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,37 @@
22
// Language: Javascript
33
// Problem: https://leetcode.com/problems/search-insert-position/
44
// Author: Chihung Yu
5+
/**
6+
*@param {number[]} nums
7+
*@param {number} target
8+
*@return {number}
9+
*/
10+
// var searchInsert = function(nums, target) {
11+
// var left = 0;
12+
// var right = nums.length - 1;
13+
//
14+
// while(left <= right){
15+
// var mid = parseInt((left + right)/2);
16+
//
17+
// var val = nums[mid];
18+
//
19+
// if(val === target){
20+
// return mid;
21+
// } else if(val > target){
22+
// right = mid - 1;
23+
// } else {
24+
// left = mid + 1;
25+
// }
26+
// }
27+
//
28+
// if(nums[left] < target){
29+
// return left + 1;
30+
// } else {
31+
// return left;
32+
// }
33+
// };
34+
35+
536
/**
637
*@param {number[]} nums
738
*@param {number} target
@@ -10,24 +41,22 @@
1041
varsearchInsert=function(nums,target){
1142
varleft=0;
1243
varright=nums.length-1;
13-
14-
while(left<=right){
15-
varmid=parseInt((left+right)/2);
16-
17-
varval=nums[mid];
18-
19-
if(val===target){
44+
45+
while(left<right){
46+
varmid=left+Math.ceil((right-left)/2);
47+
48+
if(nums[mid]===target){
2049
returnmid;
21-
}elseif(val>target){
50+
}elseif(nums[mid]>target){
2251
right=mid-1;
2352
}else{
2453
left=mid+1;
2554
}
2655
}
27-
28-
if(nums[left]<target){
56+
57+
if(nums[left]<target){
2958
returnleft+1;
3059
}else{
3160
returnleft;
3261
}
33-
};
62+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp