leetcode
xiaoxiaosuwy
这个作者很懒,什么都没留下…
展开
-
背包问题总结
参考https://blog.csdn.net/lanyu_01/article/details/79815801参考中包括求出背包中装入物品的编号及背包问题的优化0-1背包问题0-1背包问题是指每一种物品都只有一件,可以选择放或者不放。现在假设有n件物品,背包承重为m。问题描述有N件物品和一个容量为V 的背包。放入第i件物品花费的容量是weight[i],得到的价值是value[i]。求解将哪些物品装入背包可使价值总和最大。动态规划:找初始状态和状态转移方程。初始状态很容易就能转载 2020-06-04 15:12:15 · 220 阅读 · 0 评论 -
二叉树相关
1,重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。知识点1,Arrays:包含了操作数组的各种方法Arrays.copyOfRange(T[ ] original,int from,i...原创 2020-04-17 21:52:32 · 137 阅读 · 0 评论 -
二维数组
1,在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。选定左下或右上,以左下为例:比较值<目标值,右移,比较值>目标值,上移,相等,返回truepublic boolean Find(int target, int [][] arr...原创 2020-04-01 22:11:48 · 161 阅读 · 0 评论 -
剑指offer--剪绳子
给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m]。请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。原文链接:https://blog.csdn.net/u012429555/articl...转载 2020-04-01 21:39:49 · 204 阅读 · 0 评论 -
矩阵类题目
矩阵中上下左走四个方向移动矩阵用一维数组表示,行数rows,列数cols与矩阵有关,考虑定义行号i,列号j,index=i*cols+j牛客网剑指offer 65 矩阵中的路径思路:递归1,矩阵中元素是否已经访问——一个格子只能走一次定义与矩阵大小相同的一维数组做标记数组flag` //标志位,初始化为falseboolean[] flag = new boolean[matr...原创 2020-03-28 15:29:10 · 1079 阅读 · 0 评论 -
深度优先遍历(DFS)和广度优先遍历(BFS)
参考链接:https://blog.csdn.net/rr123rrr/article/details/77971771https://blog.csdn.net/weixin_42289193/article/details/81741756广度优先搜索(BFS)广度优先搜索是按层来处理顶点,和树的层序变量很像根据广度优先遍历的特点我们利用Java数据结构队列Queue来实现。搜索步...原创 2020-03-28 12:02:31 · 173 阅读 · 0 评论 -
剑指offer 63题: 求数据流中位数
题目描述:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。题意理解:动态的求平均例如,传入的数据为:[5,2,3,4,1,6,7,0,8],那么按照要求,...原创 2020-03-25 22:13:19 · 117 阅读 · 0 评论 -
10. Regular Expression Matching
题目返回true和false,即解决可行不可行问题,脑海中首先浮现的是可以使用动态规划的方法,那么也可以使用递归的方法。然而。。。却写不出方程式(o(╥﹏╥)o)想了几分钟,回归了关于动态规划的笔记(观看B站上讲解时做的),还是没有啥思路。就果断看大佬们的做法了。参考链接:https://blog.csdn.net/qq_40280096/article/details/82117696...转载 2019-06-27 15:14:19 · 778 阅读 · 0 评论 -
标准C++中的string类的用法总结
https://www.cnblogs.com/aminxu/p/4686320.html这个链接写的比较全,就不做复制粘贴的工作了,做个记录,有需要可转查上述链接。转载 2019-06-18 10:55:50 · 278 阅读 · 0 评论 -
6. ZigZag Conversion
1,题目意思这个题看了几分钟,还是没有理解题目意思.....(太菜了)百度网上的相关教程,https://www.jianshu.com/p/8b83c6a2eff8(个人认为可以称得上很经典的教程了)给定一个字符串,使之按照倒N字形排列,然后返回一个(按行)顺序读的字符串。按照图中所示,我们目前拿数组下标来表示数据,而且整个题目都会以数组下标作为关键。那我们的核心就...转载 2019-06-18 15:39:00 · 466 阅读 · 0 评论 -
3. Longest Substring Without Repeating Characters
leetcode 第三题虽然是中等难度,但个人觉得还是比较简单,可以考虑成返回最大长度问题,只需用一个变量记录最大长度的值,不断改变,最后返回即可。 int lengthOfLongestSubstring(string s) { string s1; int num=0; for(int i=0;i<s.size...原创 2019-06-12 11:11:45 · 95 阅读 · 0 评论 -
5. Longest Palindromic Substring
我自己想到的方法(没有通过,报时间超出限制的错误)。答题思路简单易懂:遍历所有子串,判断是否是回文,找出最长回文子串,不过也贴出来做个记录吧。class Solution {public: string longestPalindrome(string s) { int len = s.size(); int max = 0; string s1; int...转载 2019-06-17 16:02:32 · 119 阅读 · 0 评论 -
8. String to Integer (atoi)
这个题看起来比较简单,但是涉及到很多的边界问题......充分读懂题意真的很重要1,空格仅在开始则跳过。while(i<str.size()&&str[i]==' ')i++;2,正数值<=INT_MAX(2147483647),负数值>=INT_MIN(-2147483648)if (res > INT_MAX / 10 || (res...原创 2019-06-20 16:53:53 · 106 阅读 · 0 评论 -
[LeetCode]2. Add Two Numbers用链表逆序存储的两个数相加
我第一反应的一个想法是:先分别遍历两个链表,求得两个加数add1和add2,然后求得sum=add1+add2,最后再将sum用链表按位逆序存储。这种方法忽略了链表长度很大时数据并不能存储在int或其他整型类型里的问题。即此题应该注意是一个大数问题。class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListN...原创 2019-06-10 16:43:10 · 174 阅读 · 0 评论 -
C++ string中的find()函数
转载:https://www.cnblogs.com/wkfvawl/p/9429128.html1.string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos。(返回值可以看成是一个int型的数)#include<cstring>#include<cstdio>#include<iostream&g...转载 2019-06-14 14:34:12 · 7628 阅读 · 0 评论 -
26. Remove Duplicates from Sorted Array
转自https://www.cnblogs.com/grandyang/p/4329128.html空间复杂度为O(1),即不创建新的数组,在原数组上进行操作。考虑两个flag:_cur,_next。_cur=0;_next=1;if nums[_cur]==nums[_next]--->_next++;else:nums[++_cur]=nums[_next++];...转载 2019-05-17 10:03:12 · 139 阅读 · 0 评论 -
21. Merge Two Sorted Lists
转载自https://www.cnblogs.com/lightwindy/p/8503688.html分析:输入两个链表,输出一个链表的合并考虑新建一个链表,将两个输入的链表排序考查单链表插入的知识点。注意:最后的temp->next = l1?l1:l2;class Solution {public: ListNode* mergeTwoLists(...转载 2019-05-16 21:27:08 · 133 阅读 · 0 评论 -
20. Valid Parentheses
https://leetcode.com/problems/valid-parentheses/思考过程:第一个截图:先进后出,第二个截图进出进出考虑用栈的方法来做 class stack<> 实作出一个stack(也成为LIFO,后进先出),你可以使用push()将任意数量的元素置入stack中,也可以使用pop()将元素依次插入次序反序从容器移除(即后进先出)。...转载 2019-05-13 10:58:32 · 93 阅读 · 0 评论