leetcode

华为笔试题1

泄露秘密 提交于 2019-12-05 01:53:25
leetcode: leetcode常见算法与数据结构汇总 leetcode探索中级算法 leetcode探索高级算法 资料收集: 各种求职资料收藏 面试笔试: 腾讯数据岗 华为笔试题2 华为笔试题1 来源: https://www.cnblogs.com/joelwang/p/11896023.html

前端与算法 leetcode 242. 有效的字母异位词

我与影子孤独终老i 提交于 2019-12-04 19:50:27
目录 # 前端与算法 leetcode 242. 有效的字母异位词 题目描述 概要 提示 解析 解法一:哈希表 解法二:数组判断字符出现次数 解法三:转换字符串 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 leetcode 242. 有效的字母异位词 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? 242. 有效的字母异位词 概要 判断异位词的方法很多,可以用哈希表,也可以构建26个字符数组判断,还可以根据每个字符出现的次数排序后判断字符串是否相等 提示 哈希,数组 解析 解法一:哈希表 哈希表在本题中表现一般,但看到这题时往往第一时间就能想到这个办法.构建一个HashMap然后统计s中每个单词出现的次数,随后用这个表去判断第t中所有字符出现的次数,一旦字符出现的次数不相等或者没有这个字符就返回false 解法二:数组判断字符出现次数 构建一个长度为26的数组然后全部填充0,随后s中的 s[i]

本周学习小结(18/11 - 24/11)

不羁的心 提交于 2019-12-04 19:47:18
LeetCode 本周无进展。需要及时复习。 学习笔记之LeetCode - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5528520.html Explore - LeetCode - Design https://leetcode.com/explore/interview/card/top-interview-questions-medium/112/design/ Explore - LeetCode - Math https://leetcode.com/explore/interview/card/top-interview-questions-medium/113/math/ 学习笔记之Problem Solving with Algorithms and Data Structures using Python - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/10454395.html C++ / Database / Git / Linux / Python / MISC 本周有进展。总结分类了Python文章。 学习笔记之C / C++ - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/10437163

Leetcode算法Java全解答--23. 合并K个排序链表

核能气质少年 提交于 2019-12-04 19:06:57
Leetcode算法Java全解答–23. 合并K个排序链表 文章目录 Leetcode算法Java全解答--23. 合并K个排序链表 题目 想法 结果 总结 代码 我的答案 大佬们的答案 测试用例 其他 题目 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1->2->3->4->4->5->6 想法 复制 021-合并两个有序列表的思路,去遍历lists中的每个ListNode,然后对比各项的值 链接 合并两个有序列表 参考mergeKLists方法 复杂度 n的n次方/n 使用两两合并的方式,左边和右边合并, 参考better方法 每执行一次while的循环体,需要合并的链表数就减半,因此while循环体执行次数为logk。 每次执行循环体的时间开销:第一次执行循环体:k/2次合并2个长度为n的链表, 时间复杂度为O(nk);第二次执行循环体:k/4次合并2个长度为2n的链表, 时间复杂度依然为O(nk)。以此类推,每次执行循环体的时间开销都为O(nk)。 复杂度O(nklogk)/n 结果 超过10%的测试案例 复杂度:n的n次方/n 总结 直接套用了原来的解题思路,没有开拓新的方法 代码 我的答案 /*********************************

前端与算法 leetcode 344. 反转字符串

依然范特西╮ 提交于 2019-12-04 15:19:18
目录 # 前端与算法 leetcode 344. 反转字符串 题目描述 概要 提示 解析 解法一:双指针 解法二:递归 算法 传入测试用例的运行结果 执行结果 GitHub仓库 # 前端与算法 leetcode 344. 反转字符串 题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"] 示例 2: 输入:["H","a","n","n","a","h"] 输出:["h","a","n","n","a","H"] 344. 反转字符串 概要 用s.reverse()的童鞋就不要嚣张了,项目中可以这样做,但是算法题中不建议这样哈 提示 双指针,递归 解析 解法一:双指针 定义头尾两个指针,只要他们还没有重合就交换指针指向的字符 解法二:递归 取字符串长度的一半,随后从字符串中间开始交换,直到初值为0 算法 /** * @param {character[]} s * @return {void} Do not return anything, modify s

Leetcode题目139.单词拆分(动态规划-中等)

青春壹個敷衍的年華 提交于 2019-12-04 11:05:24
题目描述: 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "leetcode", wordDict = ["leet", "code"] 输出: true 解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet code"。 示例 2: 输入: s = "applepenapple", wordDict = ["apple", "pen"] 输出: true 解释: 返回 true 因为 "applepenapple" 可以被拆分成 "apple pen apple"。 注意你可以重复使用字典中的单词。 示例 3: 输入: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"] 输出: false 思路分析:动态规划,自底向上, dp[i]表示s到i位置是否可以由wordDict组成 所以有 如果dp[i - j]是true并且s[j:i]在wordDict里, 那么dp[i] = true; 代码实现: class Solution { public boolean wordBreak

LeetCode 676. Implement Magic Dictionary

柔情痞子 提交于 2019-12-04 08:21:05
原题链接在这里: https://leetcode.com/problems/implement-magic-dictionary/ 题目: Implement a magic directory with buildDict , and search methods. For the method buildDict , you'll be given a list of non-repetitive words to build a dictionary. For the method search , you'll be given a word, and judge whether if you modify exactly one character into another character in this word, the modified word is in the dictionary you just built. Example 1: Input: buildDict(["hello", "leetcode"]), Output: Null Input: search("hello"), Output: False Input: search("hhllo"), Output: True Input: search("hell"), Output:

本周学习小结(11/11 - 17/11)

与世无争的帅哥 提交于 2019-12-04 05:28:37
LeetCode 本周有进展。需要及时复习。 学习笔记之LeetCode - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/5528520.html Explore - LeetCode - Design https://leetcode.com/explore/interview/card/top-interview-questions-medium/112/design/ Explore - LeetCode - Math https://leetcode.com/explore/interview/card/top-interview-questions-medium/113/math/ 学习笔记之Problem Solving with Algorithms and Data Structures using Python - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/10454395.html C++ / Database / Git / Linux / Python / MISC 本周有进展。总结分类了Python文章。 学习笔记之C / C++ - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/10437163

LeetCode:String to Integer (atoi)

你。 提交于 2019-12-04 05:18:36
1、题目名称 String to Integer (atoi) (字符串到数字的转换) 2、题目地址 https://leetcode.com/problems/string-to-integer-atoi/ 3、题目内容 英文:Implement atoi to convert a string to an integer. 中文:实现atoi函数,将输入的字符串(String类型)转换为整型数据(Integer类型) 提示:实现的atoi函数需要满足以下特征 忽略字符串第一个非空格字符前的所有空格(whitespace),第一个非空格字符可以是正负号,后面接纯数字,atoi函数将这些纯数字转换为整型并返回 在数字字符后面可以接其他任何字符,但这些非数字的字符将被忽略 如果字符串中第一个非空格字符不是一个数字,字符串为空或仅由空格组成,则不对之进行转换 如果无法对字符串进行转换,返回0。如果取值过大或过小,返回整型数字的最大值INT_MAX(2147483647)或最小值INT_MIN(-2147483648) 4、解题方法1 可以使用Java中的Integer.parseInt函数解决问题,但Integer.parseInt函数与题目中描述的atoi在接收的输入上条件更为苛刻,因此需要将输入的字符串先转换为Integer.parseInt可以转换的形式

LeetCode_345. Reverse Vowels of a String

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-04 05:02:50
345. Reverse Vowels of a String Easy Write a function that takes a string as input and reverse only the vowels of a string. Example 1: Input: "hello" Output: "holle" Example 2: Input: "leetcode" Output: "leotcede" Note: The vowels does not include the letter "y". package leetcode.easy; public class ReverseVowelsOfAString { private static final boolean[] isVowel; static { isVowel = new boolean[123]; // 'z' is 122 isVowel['a'] = true; isVowel['e'] = true; isVowel['i'] = true; isVowel['o'] = true; isVowel['u'] = true; isVowel['A'] = true; isVowel['E'] = true; isVowel['I'] = true; isVowel['O'] =