LeeCode 第1题】的更多相关文章

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1==NULL)//判断有一组为空的情况 return…
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1==NULL)//判断有一组为空的情况 return…
class Solution { public: bool isValid(string s) { ,end=s.size()-; )//万万没想到,他把空字符串当成true了 return true; ];//歪方法,把左括号全部<0,右括号都>0,且同类型符号绝对值一样 ;i<end+;i++) { if(s[i]=='(') ss[i]=-; else if(s[i]==')') ss[i]=; else if(s[i]=='{') ss[i]=-; else if(s[i]=='…
;//判断返回0是因为错误还是真的是0 class Solution { public: int myAtoi(string str) {//写的很丑 if (str=="") ; ; ; bool flag_blank=true;//检验空格是否检测完 bool flag_fir=true;//检验第一个值 ;i<str.size();i++) { if(flag_blank && str[i]==' ') continue; if(flag_fir)//检测第…
题解给的思路: ; class Solution { public: int reverse(int x) { ;//如果这里还是int,会在判断前就被裁剪了,无法判断溢出 ; ) flag=; while(x) { ; x=x/; y=y*+ans; if ((y > 0x7FFFFFFF && !flag) ||(y < (signed int)0x80000000 && flag))//检查溢出要判断向上还是向下溢出 { y=; Flag_err=; br…
class Solution { public: string longestPalindrome(string s) { int len = s.length(); || len == ) return s; , max_num = ; ; i < len; i++)//检测奇数上的左右是否相同,例如aba,以b为中心 { , tt = i + , cur_num = ; && tt < len && s[t] == s[tt])//我之前把s[t] == s…
class Solution { public: int lengthOfLongestSubstring(string s) { int len=s.size(); ||len==)//边界 return len; vector<int> is_here; ;i<;i++)//ASCII字符一共256个,建立一个辅助空间存储每个字符最后出现的位置 is_here.push_back(-); ; ;//维护两个变量,一个i是当前检测到的字符,一个j是i字符之前无重复的最长子串 ;i<…
class Solution { public: int maxArea(vector<int>& height) { int len=height.size();//错过,少了int ) ; ) ],height[]); ,j=len-; ,cur_vol=; while (i!=j) { cur_vol=(min(height[i],height[j]))*(j-i);//错过,因为j-i不用+1,这里该举例具体分析一下的 if(height[i]<=height[j]) i…
题解: class Solution { public: double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) { int m = nums1.size(); int n = nums2.size(); if (m > n) return findMedianSortedArrays(nums2, nums1);//保证nums1个数少于nums2 , iMax = m, h…
题目描述 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样的元素 举例 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 思路及难点 第一次刷数据结构相关的题目,老实说,内心还是有点小激动的.看到题目第一反应,就是暴力法,直接两个for循…
要求: 给定一个整数(int)数组(Array)和一个目标数值(Target),找出数组中两数之和等于目标值(target)的两个元素的下标位置, 假设:结果唯一,数组中元素不会重复. 本人思路:分别正序.倒序遍历数组求得结果. 代码如下: public class Solution { public int[] TwoSum(int[] nums, int target) { ;i<nums.Length;i++) { ;j>;j--) { if(nums[i]+nums[j]==targe…
2018-05-03 刷了牛客网的题目:总结思路(总的思路跟数学一样就是化简和转化) 具体启发点: 1.对数据进行预处理排序的思想:比如8皇后问题 2.对一个数组元素进行比较的操作,如果复杂,可以试试倒过来,从最后一个元素往前面想. 3.动态规划,分治法. 4.超复杂的循环最好的方法是while 1:这种写法.(因为他最大程度保证了灵活性,比如leecode的283题) leecode习题: 主要是目前在学习 玩转算法面试 leetcode 这个课程,他把leecode的题目做分类,将例题,留习…
简单总结下容易忽视的地方和易错点吧 1 常用的位操作符,leecode很多算法题都是靠位运算解决的 2 箭头操作符 -> 等价于(*  ).   对指针的成员操作 3 sizeof操作符 对 char 类型或值为 char 类型的表达式做 sizeof 操作保证得 1. 对引用类型做 sizeof 操作将返回存放此引用类型对象所需的内在空间大小. 对指针做 sizeof 操作将返回存放指针所需的内在大小:注意,如果要获取该指针所指向对象的大小,则必须对指针进行引用. 对数组做 sizeof 操作…
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 C语言I-2019秋作业03 我在这个课程的目标是 掌握if-else语句,运算关系 这个作业在那个具体方面帮助我实现目标 row 2 col 2 参考文献 ACM解题:leecode面试数题网站 1.PTA实验作业 1.1(7-4) 阶梯电价 1.1.1实验代码截图 1.1.2数据处理 数据表达:定义了两个双精度浮点型函数x.y用于表示用电量和应交电费. 数据处理:定义两个表达式y = 0.53 * 50 + (0.53 + 0.0…
0.展示PTA总分(0----2) 展示3张关于"数组题目集"分数截图. 1.本章学习总结(2分) 1.1 学习内容总结 整理数组这章学习主要知识点,必须包含内容有: 数组中如何查找数据,有哪些做法 数组中如何插入数据,怎么做,可以写个伪代码或动态图展示方法 数组中如何删除数据,这个有多种做法,请一一展示. 数组中目前学到排序方法,主要思路? 数组做枚举用法,有哪些案例? 哈希数组用法,目前学过哪些案例,举例展示. 1.2 本章学习体会 描述学习感受,也可以在这里提出你不理解地方.对教…
1.本周学习总结(0--2分) 1.思维导图 2.谈谈你对查找运算的认识及学习体会. 2.PTA实验作业(6分) 本周要求挑3道题目写设计思路.调试过程.设计思路用伪代码描述.题目选做要求: 原则上题目选择越难,代码量越大分值越高. 2.1.题目1:题目名称 2.1.1设计思路(伪代码) 伪代码尽量文字描述,请用下面markdown符号渲染.如: 定义变量i表示XXXXX for i=0 to n-1 a[i]执行运算等等. end for ** 设计思路.伪代码要用```符号渲染 ** 2.1…
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 作业要求 我在这个课程的目标是 掌握关系运算.if-else语句.格式化输入语句scanf(),以及常用的数学库函数 这个作业在那个具体方面帮助我实现目标 完成pta作业时学习到简单的运算 更加熟悉了代码 参考文献 c语言程序设计,百度文献,ACM解题,leecode面试数题网站 1.PTA实验作业(15分/题) 1.1为了提倡居民节约用电,某省电力公司执行"阶梯电价",安装一户一表的居民用户电价分为两个"阶梯&q…
目录 DS博客作业--07查找 1.本周学习总结(0--2分) 1.思维导图 2.谈谈你对查找运算的认识及学习体会. 2.PTA实验作业(6分) 2.1.题目1:6-1 二叉搜索树的操作集 (30 分) 2.1.1设计思路(伪代码) 2.1.2代码截图(注意,截图,截图,截图.不要粘贴博客上.) 2.1.3本题PTA提交列表说明. 2.2 题目2:6-2 是否二叉搜索树 (25 分) 2.2.1设计思路(伪代码) 2.2.2代码截图(注意,截图,截图,截图.不要粘贴博客上.) 2.2.3本题PT…
问题 答案 这个作业属于那个课程 c语言程序设计ll 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/8719 我在这个课程的目标是 学会跟据已学过知识进行转换与变化,得到举一反三技能 参考文献 leecode面试数题网站(https://leetcode-cn.com/problemset/algorithms/) 一.PTA实验作业 从PTA题目集中选出3个你最满意的题目完成以下内容,内容要求如下: 1.1…
前言 今天忙完了公司的工作后,发现同事在做LeeCode的算法题,顿时来了兴趣,于是王子与同事一起探讨如何能做好算法题,今天在此文章中和大家分享一下. 什么是Flood Fill 算法 我们今天谈论的是Flood Fill算法,那么什么是Flood Fill算法呢? 为了理解什么是Flood Fill算法,我们先抛开算法本身的概念,王子给大家说一些平时工作生活中的场景. 1.画图工具的填充功能 相信大家都用过Windows的画图工具,我们看下图 用颜料桶给一个图形区域染色,这就是比较典型的Flo…
class Solution { public: string reverseWords(string s) { string res; stack<char> sta; string::iterator iter = s.begin(); while(iter<s.end()) { if(*iter==' ')//如果遇到空格,就把栈内容弹到res中,然后补个空格 { while(!sta.empty()) { res.push_back(sta.top()); sta.pop();…
class Solution { public: vector<vector<int>> permute(vector<int>& nums) { int len=nums.size(); vector<vector<int>> res; )//特殊情况 { vector<int> res1; res.push_back(res1); return res; } )//迭代返回条件 { res.push_back(nums);…
376. Wiggle Subsequence               自己没想出来,看了别人的分析. 主要是要分析出升序降序只跟临近的2个决定.虽然直觉上不是这样. 455. 分发饼干                           非常重要的一个题目,主要是要通过这个题目来彻底理解for 循环里面动态变化时候会发生的bug问题.问题本身是trivaial的. class Solution: def findContentChildren(self, g, s): ""&qu…
leecode刷题(22)-- 反转数组 反转数组 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表.你能否用两种方法解决这道题? 思路: 很明显,链表问题我们要通过改变指针指向来解决问题: 首先定义 per, key, last 三个指针: pre key last null 1 -> 2 -> 3 -> 4 ->…
leecode刷题(21)-- 删除链表的倒数第N个节点 删除链表的倒数第N个节点 描述: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的. 思路: 这道题我们可以采用双指针法来解答.定义两个指针 left 和 right, 都让其指向链表的头节点.先让 right 指针向后移动…
leecode刷题(20)-- 删除链表中的节点 删除链表中的节点 描述: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解…
leecode刷题(19)-- 最长公共前缀 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释:…
leecode刷题(18)-- 报数 报数 描述: 报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数.其前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 "one 1" ("一个一") , 即 11. 11 被读作 "two 1s" ("两个一"), 即 21. 21 被读作 "one 2", "one 1" ("…
leecode刷题(16)-- 字符串转换整数 字符串转换整数 描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号:假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数. 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影…
leecode刷题(17)-- 实现StrStr 实现StrStr 描述: 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返回 -1. 示例 1: 输入: haystack = "hello", needle = "ll" 输出: 2 示例 2: 输入: haystack = "aaaaa", n…