自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

转载 1. 全排列的递归实现 2. 去掉重复的全排列的递归实现 3. 全排列的非递归实现

STL系列之十 全排列(百度迅雷笔试题)

2019-01-10 17:43:31 311

原创 临时变量用于单趟遍历数组 如最大连续子数组和问题、出现次数一半或一半以上的元素问题

1.最大连续子数组和问题输入一个 非空 整型数组,数组里的数可能为正,也可能为负。数组中一个或连续的多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。样例​输入:[1, -2, 3, 10, -4, 7, 2, -5]输出:18​class Solution {public: int maxSubArray(vector<int>&a...

2019-01-10 16:56:48 196

原创 NP-complete problems——8.20

题目描述In an undiorected graph G=(V,E), we say D⊆V is a domainting set if every v∈V is either in D or adjacent to at least one member of D. In the DOMINATING SET problem, the input is a graph and a budget

2017-12-31 23:36:00 375

原创 2 Keys Keyboard

题目描述解题思路题目大意自不必说,至于说解法,这道题目有想过往动态规划方面去想,但想着想着就想偏了,最后另辟蹊径,通过对数字本身的研究而解出本题。大致思路如下: 对于n个字符A,如果想要找出最小的复制粘贴步数,为何不从它的因数找起呢?以42为例,42=21*2=7*3*2,也就是说我要先复制初始的一个A,粘贴得到一个A之后,再复制这两个A,粘贴2次得到6个A,再复制这6个A,粘贴6次就可以得到42

2017-12-27 23:18:15 265

原创 Number of Longest Increasing Subsequence

题目描述解题思路题目要求我们在一个无序的整数数组里找出最长递增子序列的个数,显而易见,我们可以先找到最长递增子序列对应的长度是多少,接着就是要找这么长的递增子序列有多少个。 针对最长递增子序列,可以选用传统的动态规划解法LIS来解决,即dp[i]代表以下标i对应的数字结尾的序列中最长递增子序列的长度,那么dp[i]就应该在下标i之前比nums[i]数值小的dp长度中取最大值。 但之后的难题是怎么

2017-12-23 16:58:21 157

原创 Knight Probability in Chessboard

题目描述解题思路题目大意如下:一个N*N的棋盘,给定一个骑士的初始位置(r,c),再给一个步数限制K,表示这个骑士刚好可以走K步(每一步有8种走法,即“日”字型走法),问走过K步后还在棋盘内的可能。 这道题目和out of boundary path有异曲同工之处,因为每一步都有8种走法,那么K步就有8^K种可能,而我们只需要找出在这8^K种可能里有多少种是还未走出边界的,解法类似,但这里为了节省

2017-12-21 01:18:56 163

原创 Out of Boundary Paths

题目描述解题思路题目大意如下:给你一个m行n列的棋盘,再给你一个足球的初始位置,问在最多走N步(每一步只有向上、向下、向左、向右的方向可以选)的情况下,有多少条路径可以走出棋盘边界。 解题思路如下:因为最多可以走N步,而每一步都有四种方向可以选,如果是穷举的话显得不大可能,这时候可以考虑用动态规划,即要想找到在位置(i,j)最多走N步有多少条路径可以走出边界,可以先找到在位置(i,j)走了一步之后

2017-12-21 00:07:54 621

原创 Partition to K Equal Sum Subsets

题目描述解题思路题目大意如下,给你一个一维int数组,且每个数大于0,再给你一个数字k,问是否可以将该数组分成k个子集,这k个子集的并集刚好为该int数组,交集为空,最关键的是,这k个子集每个子集的数字之和都相等。 仔细思考不难发现,要想满足题意,首先应该判断这个int数组的总和sum是否可以整除k,若能整除则就到了本题目的难点,怎么才能刚好划分成k个子集每个子集的数字和等于sum/k呢? 我想

2017-12-20 00:26:31 331

原创 Partition Equal Subset Sum

题目描述解题思路题目大意如下:对于一个非空的且全都是正数的数组,能否将其分成两个和相等的数组。显然若该数组总和为偶数是必须的,那接下来问题是怎么从这个总和是偶数的数组中找出特定的一些数,使它们的和是总和的一半呢?课上老师讲的方法这里简要记录一下,动态规划的思想:即定义一个一维的dp数组(bool类型或01变量都可),dp[i]为true时表示数字i可以是原数组中的任意个数之和,最后只需要返回dp[t

2017-12-08 00:49:36 144

原创 712. Minimum ASCII Delete Sum for Two Strings

题目描述解题思路题目大意如下:要从两个string里删除掉个别字母,使得剩下的字符串相等,并且有个要求——删除掉的字母总的ASCII码值要是最小的。这是典型的动态规划题目,思考之处,我觉得与寻找两个字符串的最长公共子序列有异曲同工之妙,但仔细一想,这两道题目虽然类型相同,但却还不是同一道题目,因为最长公共子序列的数目一定,但却有多种可能,而每种可能对应删除的ASCII码总值却不尽相同,因此还是得老老

2017-12-06 00:47:48 177

原创 Best Time to Buy and Sell Stock with Transaction Fee

题目描述解题思路整理要点如下: 1.因为每笔交易都会有交易花费,所以不能无限制的交易 2.在你买股票之前一定要先把手中的股票卖掉 也就是说第i天要么有股票准备卖出去或者留着不卖,而第i天的股票可能是第i-1天没有卖的,与有可能是第i-1天卖之后第i天买的,所以抽象出来为了得到在第i天得到最大利益,用两个一维数组考虑。sold[i]代表第i天卖掉股票此时的最大利润,hold[i]代表第i天不卖股

2017-12-03 21:35:13 177

原创 Maximum Length of Repeated Subarray

Maximum Length of Repeated Subarray题目描述解题思路题目属于动态规划一栏,自然会下意识通过动态规划方面的思想去想对策,动态规划算法的核心便是状态与状态转移方程,即当前的状态需要依靠前一个状态的值。而在本题中我完全可以用C[i][j] 来表示各自数组分别以A[i] 和 B[j] 结尾的最长公共子串的长度,如果A[i]==B[j],C[i][j]=C[i−1][j−1]

2017-11-23 18:02:23 205

原创 String to Integer (atoi)

题目描述解题思路题目要求将一个字符串转换成整数,难度一般,主要是对于输入情况以及返回值情况的考虑比较多,根据题目要求主要有以下几点:The function first discards as many whitespace characters as necessary until the first non-whitespace character is foundThen, startin

2017-10-27 11:43:30 211

原创 Longest Palindromic Substring

题目描述解题思路题目要求从一个字符串s的子字符串中找到一个最长的回文字符串,那么解题思路显而易见,1是要求子字符串是回文字符串,2是要求该字符串是最长的。 回文字符串有个显然的特征是沿着中心那个字符轴对称。所以对于每个字符串我们只需要从中心向两端展开,观察两端的字符是否相同即可判断是否为回文字符串,而最长这一点,我们可以设置个变量longest,每次遍历完一个子字符串都与longest做比较。这样

2017-10-27 11:24:16 131

原创 ZigZag Conversion

题目描述解题思路题意不难理解,就是是把输入的字符串上下上下走之字形状,然后按行输出,起初打算用二维数组来存储字符串,参数中的nRows作为二维数组的行,那接下来要考虑的就是如何将字符和二维数组的下标对应起来,这是问题的关键,而解决该问题的突破口就是找规律,但转念一想,既然是找规律,何不观察输入字符串的字符下标按照题示要求排列后所处位置的规律呢,这样的话也不用去申请那么大一个二维数组了。于是我分别取n

2017-10-16 23:43:53 215

原创 Palindrome Number

题目描述Determine whether an integer is a palindrome. Do this without extra space.Some hints: Could negative integers be palindromes? (ie, -1)If you are thinking of converting the integer to string, note

2017-10-13 00:27:39 134

原创 Reverse Integer

题目描述Reverse digits of an integer.Example1: x = 123, return 321 Example2: x = -123, return -321Note: The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed

2017-10-12 23:48:23 143

原创 Longest Substring Without Repeating Characters

题目描述Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb“, the answer is “abc“, which the length is 3.Given “bbbbb“, the answer is “b“

2017-09-23 22:13:29 201

原创 Add Two Numbers

Add Two Numbers题目描述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. Add the two nu

2017-09-22 12:07:48 143

原创 分治算法实现两个n位的正整数相乘

分治算法实现两个n位的正整数相乘 分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同,最后按原问题的要求,将子问题的解逐层合并构成原问题的解,快速排序算法便是基于分治策略的一种排序方法。这里要讲的是利用分治算法来实现两个n位的正整数相乘:具体思路给定两个均为n位的十进制正整数x、y,将其拆分为左右各一半的xl、xr、yl、yr。具体表示如

2017-09-10 21:26:37 5106 1

空空如也

空空如也

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

TA关注的人

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