【408 2019算法题目】教程文章相关的互联网学习教程文章

LeetCode 初级算法题(字符串)7.实现strStr()【代码】

实现 strStr() 函数。 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。 示例 1:输入: haystack = "hello", needle = "ll" 输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba" 输出: -1说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 needle 是空字符串时我们应当返回 0 ...

LeetCode 初级算法题(字符串)8.报数【代码】

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 1 2. 11 3. 21 4. 1211 5. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211。 给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。 注意:整数顺序将表示为一个字符串。 示例 1:输入: 1 输出: "1"示例 ...

LeetCode 初级算法题(字符串)9.最长公共前缀【代码】

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1:输入: ["flower","flow","flight"] 输出: "fl"示例 2:输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。说明: 所有输入只包含小写字母 a-z 。class Solution:def longestCommonPrefix(self, strs: List[str]) -> str:if not strs:return ''s1 = min(strs)s2 = max(strs)for i, s in enumerate(s1):if s != s2[i]...

LeetCode算法题-1-bit and 2-bit Characters(Java实现)【代码】

这是悦乐书的第302次更新,第321篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第170题(顺位题号是717)。有两个特殊字符,第一个字符可以用一个比特0表示,第二个字符可以用两个比特(10或11)表示。现在给出一个由比特位组成的数组,判断其最后一个字符是否是一位字符。数组的最后一位始终是比特0。例如: 输入:bits = [1,0,0] 输出:true 说明:解码它的唯一方法是两位字符和一位字符,所以最后一个字符是一位字...

LeetCode算法题-To Lower Case(Java实现)【代码】

这是悦乐书的第301次更新,第320篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第169题(顺位题号是709)。实现具有字符串参数str的函数ToLowerCase():以小写形式返回相同的字符串。例如: 输入:“Hello” 输出:“hello” 输入:“here” 输出:“here” 输入:“LOVELY” 输出:“lovely” 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。02 解题 题目的意...

JAVA入门算法题(十三)【代码】

一、出现一次的数 题目:/*** 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。* 说明:* 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?* 示例 1:* 输入: [2,2,1]* 输出: 1* 示例 2:* 输入: [4,1,2,1,2]* 输出: 4*/ 看完题便想到了,双重for循环,找到出现两次的数就跳出内层循环,没找到就返回该数 这里用到了flag,这种编程方式虽然好用,但是大量...

力扣算法题—052N皇后问题2【代码】

跟前面的N皇后问题没区别,还更简单 1 #include "000库函数.h"2 3 //使用回溯法4 class Solution {5 public:6 int totalNQueens(int n) {7 int res = 0;8 vector<int>x(n, -1);//标记9 NQueue(x, res, 0); 10 return res; 11 } 12 13 void NQueue(vector<int>&x, int &num, int row) { 14 int n = x.size(); 15 if (n == row) 16 num++; 17 for...

力扣算法题—050计算pow(x, n)【代码】

1 #include "000库函数.h"2 3 4 5 //使用折半算法 牛逼算法6 class Solution {7 public:8 double myPow(double x, int n) {9 if (n == 0)return 1; 10 double res = 1.0; 11 for (int i = n; i != 0; i /= 2) { 12 if (i % 2 != 0) 13 res *= x; 14 x *= x; 15 } 16 return n > 0 ? res : 1 / res; 17 } 18 19 }; 20 21 22 //同样使...

LeetCode算法题-Longest Univalue Path(Java实现)【代码】

这是悦乐书的第290次更新,第308篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第158题(顺位题号是687)。给定二叉树,找到路径中每个节点具有相同值的最长路径的长度。此路径可能会也可能不会通过根目录。例如: 输入:5/ 4 5/ \ 1 1 5 输出:路径为[5,5,5],边长为2输入:1/ 4 5/ \ 4 4 5 输出:路径为[4,4,4],边长为2注意:两个节点之间的路径长度...

力扣算法题—046全排列【代码】

1 #include "000库函数.h"2 3 4 //使用排序,感觉在作弊,但是题目没说不可以5 //24ms6 class solution {7 public:8 vector<vector<int>> permute(vector<int>& nums) {9 vector<vector<int>>res;10 if (nums.empty())return res;11 sort(nums.begin(), nums.end());//排序12 do {13 res.push_back(nums); 14 } while (next_permutation(nums.begin(), nu...

力扣算法题—045跳跃游戏二【代码】

1 #include "000库函数.h"2 3 4 //考虑当前最远能到什么地方,例如2, 3, 1, 1, 4,5 //首先只考虑a[0] = 2,即最远可以到a[2],然后从1到2中找下一个可到的最远点,6 //即a[1]可以到达a[4],此时找到结果,步数记录为2。若接着考虑,7 //下一次应该从3 - 4里面找一个最远即a[4]可达a[8](4 + 4), 8 //再下一次从5 - 8中找最远9 //20ms 10 class Solution { 11 public: 12 int jump(vector<int>& nums) { 13 if (nums....

每日一道算法题--leetcode 507--完美数--C++【图】

【题目描述】【代码思路】 解读题干其实就是要求一个整数的所有因数,重点有两个: 1.输入数字为num,循环的判断条件是i*i<=num,这样就能避免重复计算,这很巧妙值得理解和记忆。 2.sum初始值为1,i的初始值为2,这样就可以避免把num自身加上了,不用在循环中每次都判断 【源代码】class Solution { public:bool checkPerfectNumber(int num) {if(num==0||num==1) return false;int sum=1;for(int i=2;i*i<=num;i++){if(num%i==0) ...

【蜕变之路】第34天 算法题之一 (2019年3月24日)

Hello,大家好!我是程序员阿飞!今天早上本来想着在网上找一个开源的分布式项目,然后down下来部署到自己的电脑上看下源码 ,但是竟然搞了一上午也没启动成功,看来以后要学习一下分布式的相关知识。今天给大家分享一道比较简单的算法题,后期会慢慢增加难度。希望我们能够一同进步! 题目:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 方法一:暴力法...

LeetCode算法题-Second Minimum Node In a Binary Tree(Java实现)【代码】

这是悦乐书的第285次更新,第302篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第153题(顺位题号是671)。给定非空的特殊二叉树,其由具有非负值的节点组成,其中该树中的每个节点具有恰好两个或零个子节点。 如果节点具有两个子节点,则该节点的值是其两个子节点中的较小值。给定这样的二叉树,您需要输出由整个树中所有节点的值组成的集合中的第二个最小值。如果不存在这样的第二个最小值,则输出-1。例如:2/ \2...

力扣算法题—044通配字符匹配【代码】

//此为博客讲解//p串中星号的位置很重要,用jStar来表示,还有星号匹配到s串中的位置,//使用iStart来表示,这里 iStar 和 jStar 均初始化为 - 1,表示默认情况下是没有星号的。//然后再用两个变量i和j分别指向当前s串和p串中遍历到的位置。////开始进行匹配,若i小于s串的长度,进行while循环。若当前两个字符相等,//或着p中的字符是问号,则i和j分别加1。若p[j] 是星号,那么我们要记录星号的位置,//pStar赋为j,此时j再自增1,...