
获得徽章 0
- 三十岁之前获得成功的10个要素:
1.有足够的睡眠
2.有成长的心态
3.知道忙碌和高效的区别
4.培养自我意识
5.重视情商甚于智商
6.自我怜悯
7.拥抱不舒适
8.经常冥想
9.做个行动派
10.知道如何打破自己局限的观念。展开评论点赞 - 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
解题思路:
我们可以如下递归地定义在两个链表里的 merge 操作(忽略边界情况,比如空链表等):
也就是说,两个链表头部较小的一个与剩下元素的 merge 操作结果合并。
我们直接将以上递归过程建模,首先考虑边界情况。
特殊的,如果 l1 或者 l2 一开始就是 null ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2 哪一个的头元素更小,然后递归地决定下一个添加到结果里的值。如果两个链表都是空的,那么过程终止,所以递归过程最终一定会终止。
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var mergeTwoLists = function(l1, l2) {
if(l1==null) {
return l2
} else if (l2==null) {
return l1
} else if (l1.val<l2.val) {
l1.next = mergeTwoLists(l1.next,l2)
return l1
} else {
l2.next = mergeTwoLists(l2.next,l1)
return l2
}
};展开评论点赞 - 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
解体思路:
使用正则表达式匹配成对括号出现的情况,如果出现,将成对括号替换掉。当没有成对括号出现时,判断字符串的长度,此时如果有单括号存在,则长度不为0。
/**
* @param {string} s
* @return {boolean}
*/
var isValid = function(s) {
while(/\(\)|\{\}|\[\]/g.test(s)) {
s = s.replace(/\(\)|\{\}|\[\]/g,'')
}
return !s.length
};展开赞过评论1 - 网页版的vscode,你值得拥有!等人赞过210
- 网页版的vscode,你值得拥有!😀评论点赞