Leetcode 记录

21.Merge Two Sorted List

需要创建一个头结点

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
12         ListNode dummy(0);
13         ListNode *ans = &dummy;
14         while(l1!=NULL&&l2!=NULL){
15             if(l1->val<l2->val){
16                 ans->next=l1;
17                 l1=l1->next;
18             }
19             else{
20                 ans->next=l2;
21                 l2=l2->next;
22             }
23             ans=ans->next;
24         }
25         ans->next = l1 ? l1 : l2;
26         return dummy.next;
27     }
28 };

22.Generate Parentheses

递归

 1 class Solution {
 2 public:
 3     vector<string> generateParenthesis(int n) {
 4         vector<string> ans;
 5         vector<string> ans1;
 6         vector<string> ans2;
 7         for(int i=1;i<2*n;i+=2){
 8             ans1=generateParenthesis((i-1)/2);
 9             ans2=generateParenthesis((2*n-i-1)/2);
10             ans1.push_back("");
11             ans2.push_back("");
12             for(int j=0;j<ans1.size();j++){
13                 for(int k=0;k<ans2.size();k++){
14                     string m=‘(‘+ans1[j]+‘)‘+ans2[k];
15                     if(m.length()!=2*n)  continue;
16                     ans.push_back(m);
17                 }
18             }
19         }
20         return ans;
21     }
22 };

时间: 2024-10-14 22:25:12

Leetcode 记录的相关文章

LeetCode记录之26——Remove Duplicates from Sorted Array

国外的表达思维跟咱们有很大差别,做这道题的时候很明显.简单说本题就是让你把有序数组中的重复项给换成正常有序的.比如 1 2 2 3换成 1 2 3 3,根本不需要考虑重复的怎么办,怎么删除重复项等等.拿起键盘干就行了.然后返回有序项的下标就可以. Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not

LeetCode记录之9——Palindrome Number

LeetCode真是个好东西,本来闲了一下午不想看书,感觉太荒废时间了就来刷一道题.能力有限,先把easy的题目给刷完. Determine whether an integer is a palindrome. Do this without extra space. 确定一个整数是否是回文. 做这个没有额外的空间. 这道题毕竟是easy级别的,花了大概5分钟就写出来了.我的思路就是判断回文要首尾一一对照么,如果把int转换成string类型的话比较字符就方便多了. class Solutio

LeetCode 记录之求最长子串

//the basic idea is, keep a hashmap which stores the characters in string as keys and their positions as values, and keep two pointers which define the max substring. move the right pointer to scan through the string , and meanwhile update the hashma

LeetCode记录(1)——Array

1.Two Sum naive 4.Median of Two Sorted Arrays 找两个已排序数组的中位数 直接数可以过,但很蠢,O(m+n)时间 1 class Solution { 2 public: 3 double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { 4 int p1=-1,p2=-1; 5 double rst = 0; 6 int len1 = num

LeetCode记录之——Reverse Integer

Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 Note:The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows. 反转数字的整数. 示例1:x = 123,返回321示例2:x = -

leetcode记录贴(go语言)

没事的时候打算开始玩一玩leetcode,不然天天写代码,却对算法没啥认识还是有点尴尬的.虽说是做题,其实大部分就是为了看看别人牛逼的思路.尽量每天一题把- 1.两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 第一种方法就是便利数组,随着数组

LeetCode记录之27——Remove Element

这道题跟26题很类似,并且有官方的答案.看了官方的答案之后发现写得特别巧,自己做的题太少思路太窄.有意思的是我的算法的时间复杂度是O(N^2),官方的是O(N),我的实际运行时间还少了2ms. iven an array and a value, remove all instances of that value in place and return the new length. Do not allocate extra space for another array, you must

LeetCode记录之21——Merge Two Sorted Lists

算法和数据结构这东西,真的是需要常用常练.这道看似简单的链表合并题,难了我好几个小时,最后还是上网搜索了一种不错算法.后期复习完链表的知识我会将我自己的实现代理贴上. 这个算法巧就巧在用了递归的思想,按照常规方法也能求得,但是就未免太复杂了. Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the fir

LeetCode记录之20——Valid Parentheses

本题主要是找是否有匹配的字符串,因为还没有复习到栈之类的知识点,只能还是采用暴力方法了,后期会补上更加优化的算法.我的思路就是先遍历一遍找是否有匹配的符号,有的话就删除,然后继续遍历,直至结束. Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close in the co

LeetCode记录之14——Longest Common Prefix

本题虽然是easy难度,题目也一目了然,问题就是在这里,需要考虑的特殊情况太多,太多限制.导致我一点点排坑,浪费了较多时间. Write a function to find the longest common prefix string amongst an array of strings. 编写一个函数来查找字符串数组中最长的公共前缀字符串. 1 class Solution { 2 public String longestCommonPrefix(String[] strs) { 3