1. 程式人生 > >LeetCode第五題答案(time limite exceeded) C++ time limit exceeded

LeetCode第五題答案(time limite exceeded) C++ time limit exceeded

這個是最開始寫的brutal answer. 遍歷所有子串,演算法效率不高,雖然結果正確,但在LeetCode上time limit exceeded。下一篇附上改進程式碼。

class Solution {
public:
    bool isPalindromic(string s){
        for(int i=0;i<s.size();i++){
            if(s[i]!=s[s.size()-i-1]) return false;
        }
        return true;
    }
    string longestPalindrome(string s) {
        string result;
        int maxi=0,l=0;
        int p;
        for(int p=0;p<s.size();p++){
        for(int i=p;i<s.size();i++){
            string current = s.substr(p,i-p+1);
            if(isPalindromic(current)){
                if(current.size()>maxi){
                    result=current;
                    maxi=current.size();
                }
            }
        }
        }
        return result;       
    }
};

相關推薦

LeetCode答案time limite exceeded C++ time limit exceeded

這個是最開始寫的brutal answer. 遍歷所有子串,演算法效率不高,雖然結果正確,但在LeetCode上time limit exceeded。下一篇附上改進程式碼。 class Solution { public: bool isPalindromic(s

LeetCode:最長迴文子串C語言

給定一個字串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度為1000。 示例 1: 輸入: “babad” 輸出: “bab” 注意: "aba"也是一個有效答案。 示例 2: 輸入: “cbbd” 輸出: “bb” 解法一:暴力求解法 思想:

leetcode

1.manacher法,思想如下: 時間複雜度:O(n*n), 空間複雜度:O(1) 高效解法:基本解法的時間複雜度已經到O(n*n),既然存在高效解法,勢必要犧牲空間來換時間,才可以將時間複雜度降低。  首先分析基本演算法:外層for迴圈用於選擇中心點,內層兩邊for迴圈分別考慮

LeetCode:尋找最長回文子串

mpi flow Language 類型 gpg nrv 需要 cccccc cgo LeetCode第五題: 給定一個字符串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。 示例 1: 輸入: "babad" 輸出: "bab" 註意: "

leetcode—最長迴文字串

string longestPalindrome(string &s) { int n=s.size(); if(n==0) return " "; string longest=s.substr(0,1); for(int i=0;i<n-1;i++) { //cente

LeetCode 答案 C++

class Solution { public: double find_mean(vector<int>&nums){ int me; double result; double er=2; if(nums.size()%

C++ Primer 中文版版錯誤持續更新中

1. P16:練習 1.19,“修改你為 1.4.1 節練習 1.10” 改為 “修改你為 1.4.1 節練習 1.11” 2. P21:1.6 書店程式中,第5行的註釋 // 儲存下一條

牛客網多校訓練營場gpa01分數規劃

01分數規劃 01分數規劃問題:所謂的01分數規劃問題就是指這樣的一類問題,給定兩個陣列,a[i]表示選取i的收益,b[i]表示選取i的代價。如果選取i,定義x[i]=1否則x[i]=0。每一個物品只有選或者不選兩種方案,求一個選擇方案使得R=sigma(a[i]*x[

牛客多校場 A01分數規劃

時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 262144K,其他語言524288K Special Judge, 64bit IO Format: %lld 題目描述 Kanade selected n courses in the univers

LeetCode】1. Two Sum兩數之和-C++實現的兩種方法

本題是一下公司的面試題: 問題描述:   問題求解: 使用無序容器unorder_map實現: #include <iostream> #include <vector> #include <cassert> #inclu

leetcode 簡單】 最長公共前綴

else 函數 tco ret 包含 elf leetcode length num 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示

leetcode32:最長有效括號遇到一個奇葩的錯誤

問題描述: 給一個只包含 '(' 和 ')' 的字串,找出最長的有效(正確關閉)括號子串的長度。 對於 "(()",最長有效括號子串為 "()" ,它的長度是 2。 另一個例子 ")()())",最長有效括號子

合併兩個有序的連結串列LeetCode21

方法一: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None clas

有效的括號Leetcode20

方法一: class Solution: def isValid(self, s): """ :type s: str :rtype: bool """ if (len(s) % 2

leetcode383. Ransom Note

Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the rans

LeetCode29 Divide Two Integers兩數相除

class Solution { public:     int divide(int dividend, int divisor) {         if(!divisor || (dividend == INT_MIN && divisor == -1)

LeetCode23:合併K個有序連結串列JAVA實現

題目: 我的解答: 思路很簡單,把所有的資料先讀到ArrayList中然後轉到陣列中,然後排序,然後構建新連結串列 程式碼: /** * Definition for singly-linked list. * public class ListNode {

LeetCode87擾亂字串

原題如下: 給定一個字串 s1,我們可以把它遞迴地分割成兩個非空子字串,從而將其表示為二叉樹。 下圖是字串 s1 = “great” 的一種可能的表示形式。 great / gr eat / \ / g r e at / a

LeetCode2思悟——兩數相加Add Two Numbers

第二題 1. 題目要求 You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order

演算法分析與設計次作業leetcode 中 Majority Element 題解

心得體會 這個題目有兩個版本Majority Element,和Majority Element II,解題的方法比較巧妙,有點想不到的感覺,並且證明過程也很有趣,所以就記錄下來(具體詳情見正文題解)。 題解正文 題目描述 問題分析 題目要求majority