1. 程式人生 > >C語言/771.寶石與石頭

C語言/771.寶石與石頭

先上題目


思路:題目不難,兩重迴圈即可解決。

          在做這道題的時候,發現了一個細節。大概像我這樣的新手都會忽視吧。一般情況下,我都習慣直接愛在迴圈判斷裡       組長度函式,覺得方便快捷。但是這樣做的話,每次進行迴圈判定的時候都會進行一次函式求值。如果迴圈層數很大,或者程式碼裡很多地方使用了這樣的做法。會耗費大量的時間資源,降低演算法速度。對比下面兩種解法即可明白:

 第一種 :耗時12ms

int numJewelsInStones(char* J, char* S) {
    int i,j,count=0;
    for(i=0;i<strlen(J);i++){
        for(j=0;j<strlen(S);j++){
            if(J[i]==S[j]){
                count++;
            }
        }
    }
            return count;
}

第二種:耗時4ms

int numJewelsInStones(char* J, char* S) {
    int Jlen=strlen(J);
    int Slen=strlen(S);
    int i,j,count=0;
    for(i=0;i<Jlen;i++){
        for(j=0;j<Slen;j++){
            if(J[i]==S[j]){
                count++;
            }
        }
    }
            return count;
}    
第二種在進行迴圈直接,先進行函式求值,賦給一個變數,再進行迴圈,使用了多一點空間,在本題中演算法效率就有了很大提升

相關推薦

C語言/771.寶石石頭

先上題目思路:題目不難,兩重迴圈即可解決。          在做這道題的時候,發現了一個細節。大概像我這樣的新手都會忽視吧。一般情況下,我都習慣直接愛在迴圈判斷裡       組長度函式,覺得方便快捷。但是這樣做的話,每次進行迴圈判定的時候都會進行一次函式求值。如果迴圈層數

C#LeetCode刷題之#771-寶石石頭(Jewels and Stones)

問題 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,因此"a"和"A"是不同型別的石頭。 輸入: J

771. 寶石石頭

ret sta con base HR 字母 cti code tool 給定字符串J 代表石頭中寶石的類型,和字符串 S代表你擁有的石頭。 S 中每個字符代表了一種你擁有的石頭的類型,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重復,J 和 S中的所有字符

leetcode-771-寶石石頭

leetcode 演算法題 (python),從易到難,發到部落格,促進自己堅持刷題! class Solution:     def numJewelsInStones(self, J, S):        

leetcode 771. 寶石石頭【Easy】【雜湊表】

題目: 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,

【LeetCode】771. 寶石石頭

給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,因此"a"和"A"是不同型別的石頭。 示例 1: 輸入:

leetcode.771 寶石石頭

 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,

LeetCode 771. 寶石石頭(java)

pan 技術 多少 java lee 輸出 重復 因此 style 給定字符串J 代表石頭中寶石的類型,和字符串 S代表你擁有的石頭。 S 中每個字符代表了一種你擁有的石頭的類型,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重復,J 和 S中的所有字符都是字母。字

771,寶石石頭

 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,因此"a"和"A"是不同型別的石頭。 示例 1: 輸入

Leetcode 771 寶石石頭

 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。J 中的字母不重複,J 和 S中的所有字元都是字母。字母

【leetcode刷題】[簡單]771寶石石頭(jewels and stones)-java

寶石與石頭 jewels and stones題目分析解答 題目 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母

771 寶石石頭

題目 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,因此"a"和"A"是不同型別的石頭。 示例

LeetCode-771 寶石石頭

給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,因此"a"和"A"是不同型別的石頭。 解題思路:

LeetCode 771 Jewels and Stones 寶石石頭

解法一: class Solution { public:     int numJewelsInStones(string J, string S) {         int count=0;         for(int i=0;i<J.size();++i)

C語言基礎--決策判斷

出現 program 程序 c語言基礎 res else if express 基礎 裏的 需要掌握的內容: 一. 1.if語句 C語言提供一種稱為if語句的語法格式,通用的形式是: if(express) { programming statements; }

散分+快來報名“C語言指針匯編內存地址(二)”公開課

公開 lan shuf target dsd blank dmg userinfo gin iR歡2kaq崖居止40攘http://www.docin.com/app/user/userinfo?userid=179252984 Qsgb5V1仗mchttp://t.doc

1.2 C語言--函數數組

詳細 cor 行高 ret mar 編譯 自動變 如果 模塊化 函數 函數的定義 返回值類型函數名(類型形參名[,……]){ 函數體 } 除了沒有訪問修飾符外,基本等同於java的函數。 良好的程序設計風格要求即使沒有返回值,也要使用return;作為最後一條

C語言的宣告定義

keil的專案中,遇到呼叫其他C檔案函式和變數的情況: 對於函式,在a.c下面進行編寫,之後在a.h下面進行宣告,其他檔案包含a.h即可呼叫。 對於變數,在a.c下面進行定義,在a.h下面也要進行一下宣告,其他檔案使用此變數時,包含a.h即可使用。 關於變數的定義與宣告 變數定義即為

Leetcode:寶石石頭(Python3)

題目描述:給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分大小寫,因此"a"和"A"是不同型別的石頭。 示例 1: 輸入: J

(java)leetcode771 寶石石頭(Jewels and Stones)

題目描述: 給定字串J 代表石頭中寶石的型別,和字串 S代表你擁有的石頭。 S 中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。 J 中的字母不重複,J 和 S中的所有字元都是字母。字母區分