比較失落吧,算法確實需要保持日常,這樣才有感覺,今晚兩題leetcode easy的題都沒做好,第一題沒審好題,導致用了太多時間,第二題都沒做好,記錄一下這兩題吧。
Longest String Prefix
var longestPrefix = function(s) {
let maxLength = 0;
if (!s || s.length === 0) {
return maxLength;
}
for (let i = 0; i < s.length - 1; i++) {
if (s.charCodeAt(i) <= s.charCodeAt(i + 1)) {
maxLength += 1;
} else {
break;
}
}
return maxLength > 0 ? maxLength + 1 : maxLength;
};
Swap Nodes
var swapNodes = function(head, k) {
let leftCursor,
rightCursor,
cursor = head,
count = 1,
queue = [];
while (cursor) {
queue.unshift(cursor);
let length = queue.length;
if (length === k) {
leftCursor = queue[length - 1];
}
cursor = cursor.next;
}
rightCursor = queue[k];
// 真實需要交換的節點
let r = rightCursor.next,
l = leftCursor.next,
temp = r.next;
r.next = l.next;
leftCursor.next = r;
rightCursor.next = l;
l.next = temp;
return head;
};