算法题

以下是为您整理出来关于【算法题】合集内容,如果觉得还不错,请帮忙转发推荐。

【算法题】技术教程文章

LeetCode算法题-Array Partition I(Java实现)【代码】

这是悦乐书的第262次更新,第275篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第129题(顺位题号是561)。给定一个2n个整数的数组,你的任务是将这些整数分组为n对整数,比如说(a1,b1),(a2,b2),...,(an,bn),找出每对(ai, bi)中最小值,然后相加,使得其和最大。例如: 输入:[1,4,3,2] 输出:4 说明:n为2,对的最大总和为4 = min(1,2)+ min(3,4)。 注意:n是正整数,其范围为[1,10000]。 数组中的...

LeetCode算法题127:单词接龙解析【代码】

给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: 1.每次转换只能改变一个字母。 2.转换过程中的中间单词必须是字典中的单词。 说明:如果不存在这样的转换序列,返回 0。 所有单词具有相同的长度。 所有单词只由小写字母组成。 字典中不存在重复的单词。 你可以假设 beginWord 和 endWord 是非空的,且二者不相同。示例 1: 输入: beginWord = "hit", end...

LeetCode算法题-Maximum Depth of N-ary Tree(Java实现)【代码】【图】

这是悦乐书的第261次更新,第274篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第128题(顺位题号是559)。给定n-ary树,找到它的最大深度。最大深度是从根节点到最远叶节点的最长路径上的节点数。例如,给定一个3-ary树:我们应该返回它的最大深度,即3。 注意:树的深度最多为1000。 节点总数最多为5000。本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。02 ...

LeetCode算法题-Student Attendance Record I(Java实现)【代码】

这是悦乐书的第258次更新,第271篇原创01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第125题(顺位题号是551)。您将获得一个表示学生出勤记录的字符串。 该记录仅包含以下三个字符: A:缺席。 L:迟到。 P:在场。 如果学生的出勤记录不超过一个“A”(缺席)或超过两个连续的“L”(迟到),则可以奖励学生。您需要返回学生是否可以根据他的出勤记录获得奖励。例如: 输入:“PPALLP” 输出:true 输入:“PPALLL” 输...

每天一道算法题(2019.2.24)【代码】

Q: 假设我们有binary search tree (BST), 请写出search, insert, printOrder, printMax 函数 二叉搜索树(BST)基本特性:所有非叶子结点至多拥有两个儿子(Left和Right) 所有结点存储一个关键字 非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树python 代码: class Node():def __init__(data, self):self.data = dataself.rightChild = Noneself.leftChild = Nonedef search(self, newData):if newDat...

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....

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...