您当前所在分类目录: 算法

[leetcode题解]542.01 Matrix

给定一个由 0 和 1 组成的矩阵,找出每个元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1:  输入: 0 0 0 0 1 0 0 0 0 输出: 0 0 0 0 1 0 0 0 0 示例 2:  输入: 0 0 0 0 1 0 1 1 1 输出: 0 0 0 0 1 0 1 2 1 注意: 给定矩阵的元素个数不超过 10000。 给定矩阵中至少有一个元素 …

Continue reading

[leetcode题解] 16. 3Sum Closest

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). Given an array nums of …

Continue reading

13. Roman to Integer

罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做&nb …

Continue reading

leetcode题解刷题汇总

leetcode题目不断刷新,大家也都一直在刷,本文记录作者刷题记录,一直更新,权当抛砖引玉,欢迎大家一块交流学习。如果各位leetcoder发现题解有问题,欢迎指正交流,也希望大家可以提出更新颖的解题方法。新建leetcode算法交流群259150720,欢迎leetcoder进群交流。 0001 Two Sum array Easy 0002 Add Two Numbers linked li …

Continue reading

[leetcod题解]684. 冗余连接

在本问题中, 树指的是一个连通且无环的无向图。 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。 返回一条可以 …

Continue reading

[pat题解]1108.Finding Average

PAT1108题,本题要求输入N个字符串,然后判断这些字符串是否表示一个合法的数,将所有合法的数求和并计算其均值。对于不合法的数,对其进行输出。 合法规则:值必须在[-1000, 1000]范围内,并且精度不能超过小数点后两位。规则比较简单。 本题注意点: 1.要判断精度,比如1.000,精度为三位小数,不符合规则,则表示该数是非法的。 2.要判断该字符串能否表示一个数,比如aaa,显然不能表示一 …

Continue reading

[华为OJ题解]特殊要求字符串排序

本题是一个简单排序的题目,但是题目中对于不同字符给予不同的处理,稍微麻烦一点。主要涉及大小写忽略的稳定排序。输出的时候要固定非字母字符的位置等知识点。 题目要求如下: 规则1:英文字母从A到Z排列,不区分大小写。       如,输入:Type 输出:epTy 规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。     如,输入:BabA …

Continue reading

[华为OJ题解]求解最小公倍数

华为oj题解,给定两个数,求这两个数的最小公倍数。两个数的最小公倍数求法为两数的乘积除以两数的最大公约数,所以,本质上本题就是求解两个数的最大公约数问题。求解最大公约数直接使用辗转相除法进行求解即可。代码如下: #include <iostream> #include <string> using namespace std; int gcd(int a, int b) { …

Continue reading

[leetcode题解]215.Kth Largest Element in an Array(数组中找第k大数)

leetcode,215,Kth Largest Element in an Array,给定一个包括若干元素的数组以及一个k,要求在数组中找出第k大的数。 通常的思路是排序,然后可以快速找到第k大的数,时间复杂度o(nlogn)。比较好的方法是借助快排的思想,一次轴分,可以以o(n)的时间复杂度找到第k大数。 c++代码: class Solution { public: //author:凌风 …

Continue reading

[pat题解]1074.Reversing Linked List(25)

本题要求对一个链表进行分组逆置,给定K,每K个元素为一组,将组中元素逆置,如果最后一组元素不足K个,则不做处理。 本题个人做法为使用map来组织链表结构,可以方便的进行查询和处理。 c++代码如下:  #include <algorithm> #include <cstdio> #include <iostream> #include <vect …

Continue reading

[leetcode题解]143. Reorder List(链表重排序)

leetcode第143题,recorder list,属于linked-list相关的题目。 题目给定一个单链表,然后要求按给定的顺序重新排列所有元素,要求在原地做,而且不能修改节点中的值,只能修改节点的插入顺序。重排序的规则如下示例: L:a0->a1->a2->a3…..->an 将其修改为L:a0->an->a1->an-1->& …

Continue reading