原创 java 把依賴打到一個整體jar包裏運行(maven)

一、環境       maven 3.6.1     jdk 1.8 二、運行打成整體的jar包:         java -jar [包名] 二、maven 中pom.xml插件:       <plugin>

原创 java C++ 實現 leetcode 第三題 3. 無重複字符的最長子串 給定一個字符串,請你找出其中不含有重複字符的 最長子串 的長度。

一、C++實現      int lengthOfLongestSubstring(string s) { if (s.length() <= 1) return s.length();

原创 leetcode 38. 外觀數列 「外觀數列」是一個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下

1、思路:      從1開始遍歷,求出後面每一個轉化後的數。依次求下一個。 string countAndSay(int n) { string res = "1"; for (int i = 2; i <= n; i++) {

原创 C++ leetCode 37. 解數獨 編寫一個程序,通過已填充的空格來解決數獨問題。

bool check(int &n, char ch, vector<vector<char>> &board) { int row = n / 9; int col = n % 9; for (int i = 0; i < 9;

原创 C++ leetcode 7. 整數反轉 給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

一、思路          轉化成string, 有負號先去掉負號,然後從string的尾部開始遍歷,每一個字符放到第一個另一個字符串中去。 int reverse(int x) { if (x == 0) return 0;

原创 C++ leetcode14 最長公共前綴 編寫一個函數來查找字符串數組中的最長公共前綴。 如果不存在公共前綴,返回空字符串 ""

1.C++ bool static cmp(const string &a, const string &b) { return a.length() < b.length(); } strin

原创 leetcode C++ 13. 羅馬數字轉整數 羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。

一、C++代碼: int romanToInt(string s) { int res = 0; map<char, int> mapRoman = { {'I',1},{'V',5},{'X',10},{'L',50},{'C'

原创 C++ leetcode 17. 電話號碼的字母組合 給定一個僅包含數字 2-9 的字符串,返回所有它能表示的字母組合。 給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。

一、解題思路        用map可以加快查詢速度,DFS深度搜索,DFS是一種很常見的對於多循環或者n!的好的搜索算法.  二、代碼:C++ void init(map<char, string> &mapDigit) { map

原创 C++ ,leetcode 43. 字符串相乘 給定兩個以字符串形式表示的非負整數 num1 和 num2,返回 num1 和 num2 的乘積,它們的乘積也表示爲字符串形式

一、思路:       字符串逆序,然後遍歷兩個逆序後的字符串,然後對應的字符相乘,i+j等於它的位數。 string multiply(string num1, string num2) { reverseStr(num1); r

原创 C++ leetcode 面試題64. 求1+2+…+n

一、C++ int sumNums(int n) { int sum=0; for(int i=1;i<=n;i++) sum+=i; return sum;

原创 leetcode C++ 4. 尋找兩個有序數組的中位數 給定兩個大小爲 m 和 n 的有序數組 nums1 和 nums2。 請你找出這兩個有序數組的中位數,並且要求算法的時間複雜度爲 O(log

一、概述:      這道題思路其實蠻簡單的,就是邊界太難考慮了,所以一直沒能通過,寫了好長的代碼考慮邊界,然後看到一個大神寫的代碼: https://leetcode-cn.com/problems/median-of-two-sort

原创 java 41. 缺失的第一個正數: 給你一個未排序的整數數組,請你找出其中沒有出現的最小的正整數。

1、java public int firstMissingPositive(int[] nums) { Set<Integer> setNums=new HashSet<Integer>();