C++
deep-己
这个作者很懒,什么都没留下…
展开
-
leetcode300. 最长上升子序列升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。1,动态规划,(本题动态规划是比较好理解的,但显然效率比较低)int lengthOfLIS(vector<int>& nums) { int len=nums.size...原创 2020-04-11 15:37:37 · 167 阅读 · 0 评论 -
leetcode5--. 最长回文子串(动态规划)
动态规划1,对于对角线,只存在一个字符,故都属于回文字符串。2,首先判断start和end(s[i]==s[j] ?)当i=0时,j=1, ‘ab’,首尾不同,故为false.j=2, ‘aba’, 首尾相同,再去判断内部字符串,(i+1,j-1)是否为回文字符串,(如红线标注所示)j=3 ,’ a…d’ ,首尾不同,故为false.j=4, ‘a…a’, 首尾相同,再去判断内部字符...原创 2020-03-28 21:15:01 · 150 阅读 · 0 评论 -
leetcode5--. 最长回文子串(中心扩散)
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"1,扩展中心的方法考虑到回文子串可能是偶数或奇数,那展开的中心就存在两种可能,1,某个字符展开,2,两个字符之间展开。这样中心共有n+(n-1)个。...原创 2020-03-28 17:34:23 · 230 阅读 · 0 评论 -
leetcode532-- 数组中的K-diff数对(auto,lower_bound..)
c++版本,好恶心的题,目前还没有找到最优解,速度比java的要慢很多给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k.输入: [3, 1, 4, 1, 5], k = 2输出: 2解释: 数组中有两个 2-diff 数对, (1, 3) ...原创 2020-03-25 12:54:13 · 175 阅读 · 0 评论 -
448--找到所有数组中消失的数字
给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]首先,数组中的元素在1—n...原创 2020-03-22 21:55:20 · 95 阅读 · 0 评论 -
217-- 存在重复元素
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true一:排序的方法,用sort函数class Soluti...原创 2020-03-22 10:30:58 · 110 阅读 · 0 评论 -
leetcode219-- 存在重复元素 II (c++)
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。两个索引值的差值小于等于k*示例 1:输入: nums = [1,2,3,1], k = 3输出: true示例 2:输入: nums = [1,0,1,1], k = 1输出: true示例 3:输入: ...原创 2020-03-22 10:19:56 · 204 阅读 · 0 评论 -
LeetCode189---旋转数组
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] 和 ...原创 2020-03-21 16:44:16 · 89 阅读 · 0 评论 -
leetcode169--多数元素
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2这里,首先了解到,多数元素是指数组中大于size一半的元素,设置第一个数为target,并令count=1;然后,与后...原创 2020-03-21 10:29:21 · 114 阅读 · 0 评论 -
C++---2 输入一个链表,输出该链表中倒数第k个结点。
定义两个结点p,q指向头节点,p先走k步,然后,p,q同时走,直到p走到最后null为止,此时,q就是倒数k位置。class Solution {public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { ListNode* p=pListHead; ListNode* q...原创 2020-01-07 19:52:10 · 317 阅读 · 0 评论 -
C++——1,字符串逆序输出(扩充repalce()函数)
int main(){ string a, b; //a = "sghrdhgukh"; cin >> a; b.replace(b.begin(), b.end(), a.rbegin(), a.rend()); //b=a.replace(a.find("r"), 2, "g"); //b替换指定a中的指定字符(pos,len, string),pos起始位置,...原创 2019-09-12 19:55:21 · 213 阅读 · 0 评论