自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(122)
  • 资源 (1)
  • 收藏
  • 关注

原创 不相交的握手

【题目描述】偶数 个人站成一个圆,总人数为 num_people 。每个人与除自己外的一个人握手,所以总共会有 num_people / 2 次握手。将握手的人之间连线,请你返回连线不会相交的握手方案数。由于结果可能会很大,请你返回答案 模 10^9+7 后的结果。【示例】输入:num_people = 2输出:1输入:num_people = 4输出:2解释:总共有两种方案,第一种方案是 [(1,2),(3,4)] ,第二种方案是 [(2,3),(4,1)] 。输入:num

2020-05-30 13:56:18 350

原创 无重复数字的数组全排列

【题目描述】给定一个 没有重复 数字的序列,返回其所有可能的全排列。【示例】输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]【代码】class Solution {public: void perm(vector<vector<int> > &res, vector<int>& nums, int start, int end)

2020-05-29 16:36:25 1343

原创 数组的子集(全排列)

【题目描述】给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。【示例】输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]【解题思路】这道题利用递归,每次固定一个数,然后保存,再继续遍历下去【代码】class Solution {public: void DFS(vector<vector<int>>

2020-05-29 16:04:07 600

原创 组成最大数

【题目描述】给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。【示例】输入: [10,2]输出: 210输入: [3,30,34,5,9]输出: 9534330【解题思路】自定义一种排序比较方法,就是判断ab>ba注意如果数组全是0,输出为“0”【代码】class Solution {public: static bool comp(const string a, const string b) { string sum1 =

2020-05-28 20:34:09 2790 3

原创 数组的度

【题目描述】给定一个非空且只包含非负数的整数数组 nums, 数组的度的定义是指数组里任一元素出现频数的最大值。你的任务是找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。【示例】输入: [1, 2, 2, 3, 1]输出: 2解释:输入数组的度是2,因为元素1和2的出现频数最大,均为2.连续子数组里面拥有相同度的有如下所示:[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]

2020-05-28 19:09:15 630

原创 四数之和为target(2)

【题目描述】给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500 。所有整数的范围在 -228 到 228 - 1 之间,最终结果不会超过 231 - 1 。【示例】输入:A = [ 1, 2]B = [-2,-1]C = [-1, 2]D = [ 0, 2]输出:2解释

2020-05-28 18:23:39 216

原创 四数之和为target

【题目描述】给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。【示例】给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[[-1, 0, 0, 1],[-2, -1, 1, 2],[-2, 0, 0, 2]

2020-05-28 16:46:52 216

原创 三数之和为0

【题目描述】给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。【示例】给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]【解题思路】1.暴力解法,就是我们用三个循环嵌套,然后找出和为0的三个数,但是这种情况下很耗时,时间复杂度为O(n^3)

2020-05-28 16:29:12 1247 1

原创 平衡二叉树

【题目描述】输入一棵二叉树,判断该二叉树是否是平衡二叉树。在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树【代码】 int depth(TreeNode* pRoot) { if(!pRoot) return 0; int l = depth(pRoot->left); if(l == -1) return -1; int r = depth(pRoot->right); if(r

2020-05-14 15:15:30 74

原创 求1+2+...+n

【题目描述】求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。【思路】利用构造函数和静态变量及函数【代码】class Father{public: Father() { n++; sum += n; } static void clear() { n = 0; sum = 0; }

2020-05-13 21:59:33 211

原创 数据流中的中位数

【题目描述】如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。【思路】使用大小堆,用优先队列来保存大小两个部分数据【代码】class Solution {public: void Insert(int num) { if(small.s

2020-05-13 21:31:08 76

原创 二叉树分层打印

【题目描述】从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。【思路】先求二叉树深度,然后按照先序遍历来打印【代码】void depth(vector<vector<int>>&vec, TreeNode* root, int h) { if(!root) return; vec[h].push_back(root->val); depth(vec,root-

2020-05-13 21:15:05 323

原创 二叉树的下一个结点

【题目描述】给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。【思路】考虑以下情况:1.如果结点有右子树,那么它的下一个结点就是右子树的最左结点2.如果结点没有右子树:(1)如果结点是其父节点的左子树,那么它的下一个结点就是其父节点(2)如果结点是其父节点的右子树,那么就向上一直遍历,直到它是父节点的左子节点的节点,那么这个节点的父节点就是我们需要的【代码】 TreeLinkNode* GetNext(Tr

2020-05-13 20:56:52 92

原创 链表中环的入口

【题目描述】给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。【思路】之前我们判断链表是否有环,用两个指针,快慢指针,一个走一步,一个走两步,在此基础上,当两个指针相遇,此时肯定在环中,那么接着计算环的节点数,就利用相遇节点往前走,直到在次回到相遇点,即可计算环的节点数n,然后利用两个指针同时指向头节点,第一个指针先向前走n个节点,然后两个指针同时向前走,直到两者相遇即为环入口。【代码】ListNode* Meet(ListNode* pHead) {

2020-05-13 20:28:51 83

原创 判断字符串是否表示数值

【题目描述】请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。【思路】找到通用规律A.B[[E|e]C], A.B表示整数加小数,C表示指数,ABC可能为带符号数,然后具体判断看代码【代码】 //判断数字 bool isUnsignedInt(char** str) { i

2020-05-13 18:14:10 175

原创 找到数组中任意一个重复数字

【题目描述】在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。【思路】暴力法:每个数字与之后的数字对比,直到找到重复数字查找表:用额外空间保存数组每个元素出现的次数,出现次数大于1,即为重复数,时间复杂度O(n),空间复杂度O(n);置换法:重头扫描数组,遇到下标为i的数字如果不是i的

2020-05-13 17:05:30 234

原创 变态跳台阶

【题目描述】一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。【思路】之前的台阶是一次1或2级,如今可以1~n级,举一反三,那么fn = fn-1+fn-2 + …+f1 + 1【代码】int jumpFloorII(int n) { if(n < 3) return n; int res; int sum = 3; for(int i = 3; i <= n;

2020-05-13 16:33:41 81

原创 二叉树镜像

【题目描述】操作给定的二叉树,将其变换为源二叉树的镜像【思路】简单的二叉树遍历,交换左右子树即可【代码】void Mirror(TreeNode *pRoot) { if(!pRoot) return; if(!pRoot->left && !pRoot->right) return; swap(pRoot->left,pRoot->right); Mirror(pRoot->left);

2020-05-13 16:30:14 78

原创 不用加减乘除做加法

【题目描述】写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。【思路】不用“+,-,*,/”,那不就是摆明了用位运算,这时我们可以想到异或和与,两树二进制相加,异或得到的是没有加进位的结果,与得到的是需要进位的结果,如果进位不为0,那么继续异或和与,反之,则为最后相加的结果【代码】int Add(int num1, int num2) { int res, carry; do { res =

2020-05-13 16:08:36 66

原创 构建乘积数组

题目描述:给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]A[1]…*A[i-1]A[i+1]…*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)思路:暴力法:直接循环n次,每次乘以i以外的所有数字,显然这种方法比较耗时左右乘积法:用两个数组来分别累积计算乘积, 左数组即从左往右相乘,右数组则从右往左乘积,然后那么

2020-05-13 15:39:03 91

原创 Add Two Numbers

两链表数相加问题Leetcode【题目描述】You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. ...

2018-09-05 17:21:37 109

原创 20. Valid Parentheses

题目描述【Leetcode】 Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. The brackets must close in the correct order, “()” and “()[]

2017-07-24 10:05:39 170

原创 205. Isomorphic Strings

题目描述【Leetcode】 Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the characters in s can be replaced to get t. All occurrences of a character must b

2017-07-24 09:49:13 168

原创 441. Arranging Coins

题目来源【Leetcode】 You have a total of n coins that you want to form in a staircase shape, where every k-th row must have exactly k coins. Given n, find the total number of full staircase rows that

2017-07-22 09:29:13 191

原创 342. Power of Four

题目来源【Leetcode】 Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3.比较简单

2017-07-22 08:56:50 210

原创 263. Ugly Number

题目来源【Leetcode】 Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3.比较简单

2017-07-22 08:56:32 194

原创 643. Maximum Average Subarray I

题目来源【Leetcode】 Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3.比较简单

2017-07-22 08:56:12 373

原创 83. Remove Duplicates from Sorted List

题目来源【Leetcode】 Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3.比较简单

2017-07-22 08:55:54 173

原创 231. Power of Two

题目来源【Leetcode】 Given an integer, write a function to determine if it is a power of two.判断一个数是否为2的N次方方法一:取对数class Solution {public: bool isPowerOfTwo(int n) { double i = log10(n)/log10(2

2017-07-21 13:06:18 182

原创 326. Power of Three

题目来源【Leetcode】 Given an integer, write a function to determine if it is a power of three. Follow up: Could you do it without using any loop / recursion?这道题要求不用循环来判断这个数是否为3的N次方方法一: 用取对数的办法 n

2017-07-21 12:55:24 189

原创 202. Happy Number

题目来源【Leetcode】 Write an algorithm to determine if a number is “happy”. A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the

2017-07-21 12:32:20 183

原创 415. Add Strings

题目来源【Leetcode】 Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, return false.

2017-07-20 13:31:41 174

原创 551. Student Attendance Record I

题目来源【Leetcode】 Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, return false.

2017-07-20 12:56:02 200

原创 541. Reverse String II

题目来源【Leetcode】 Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, return false.

2017-07-20 12:31:55 203

原创 504. Base 7

题目来源【Leetcode】 Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, return false.

2017-07-20 11:48:32 167

原创 409. Longest Palindrome

题目来源【Leetcode】 Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, return false.

2017-07-20 10:14:00 170

原创 242. Valid Anagram

题目来源【Leetcode】 Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t = “nagaram”, return true. s = “rat”, t = “car”, return false.

2017-07-20 09:36:53 247

原创 237. Delete Node in a Linked List

题目来源【Leetcode】 Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find

2017-07-19 22:57:15 199

原创 171. Excel Sheet Column Number

题目来源【Leetcode】 Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find

2017-07-19 22:19:27 264

原创 530. Minimum Absolute Difference in BST

题目来源【Leetcode】 Given two strings s and t which consist of only lowercase letters. String t is generated by random shuffling string s and then add one more letter at a random position. Find

2017-07-19 21:50:09 182

古典密码(五种,vig,aff,playfiar,hill,casear)

自己写的五种古典密码(vig,aff,playfiar,hill,casea),用QT做的界面,想参考的可以看一看

2017-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除