509 斐波拉契数列
摘要:2019-10-24 今天先贴代码 暴力递归和有记忆递归,明天看动态规划! 1、暴力的递归 2、有记忆递归
阅读全文
867 输出矩阵的转置
摘要:1、题目 给定一个矩阵 A, 返回 A 的转置矩阵。 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引。 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]]输出:[[1,4,7],[2,5,8],[3,6,9]] 示例 2: 输入:[[1,2,3],[4,5,6]]输出
阅读全文
905.按奇偶排序数组
摘要:1、题目 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。 2、思路 思
阅读全文
561 数组拆分
摘要:题目概要 给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大。 示例 1: 输入: [1,4,3,2] 输出: 4解释: n 等于 2, 最大总和为 4 =
阅读全文
977 有序数组的平方
摘要:1、题目 给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。 示例 1: 输入:[-4,-1,0,3,10]输出:[0,1,9,16,100] 示例 2: 输入:[-7,-3,2,3,11]输出:[4,9,9,49,121] 2、思路 自己的思路 先把每
阅读全文
1051 高度检查器
摘要:1、题目描述 学校在拍年度纪念照时,一般要求学生按照 非递减 的高度顺序排列。 请你返回至少有多少个学生没有站在正确位置数量。该人数指的是:能让所有学生以 非递减 高度排列的必要移动人数。 示例: 输入:[1,1,4,2,1,3]输出:3解释:高度为 4、3 和最后一个 1 的学生,没有站在正确的位
阅读全文
832 反转图像
摘要:首先自己犯了好几个低级错误 翻转的时候区间写错 a[i][j]=a[i][n-j-1]!!!,导致越界访问 忘记reverse命令可以反转 认为0&0=1!0&0=0!1&1=1 0&0=0 0&&0=0 思路 向量vector中vector<vector<int>>a表示二维数组,a.size()
阅读全文
1030 距离顺序排列矩阵单元格 重要
摘要:get到的新知识点 vector定义二维数组 vector<vector<int>>rec(R*C,vector<int>(3))//定义一个vector变量rec,总共包含R*C个vector变量,rec由很多个vector变量组成,每一个vector大小是3,前两个存放坐标,第三个存放曼哈顿距离
阅读全文
242 有效的字母异位词
摘要:读懂题目意思 首先自己都没读懂题目意思,理解了一会儿! :s和t字符串的字母组成是一样的,相同的种类和相同的数量,否则就返回错误 思路 第一种:利用sort函数进行排序,然后判断s和t是否相同 第二种:建立哈希表,s字符串是根据键值存放数量,t字符串根据键值是减小数量,利用迭代器判断所有的key对应
阅读全文
976 三角形的最大周长--重要
摘要:虽然是简单题,但是花费了自己不少时间!! 1、想用计数排序,结果还写错了,真的难受!!,最后还是用的vector的自动排序指令,sort,刚开始自己忘了!! 2、思路 排序:排序的是遍历的前提 从最右边的数遍历,三个连续的,最小的加第二小大于最大的就返回值,否则,最右边的数向左边移一位,不要再犯程序
阅读全文
1122 数组的相对排序
摘要:vec_1.insert(vec_1.end(), vec_2.begin(), vec_2.end());两个容器的拼接!! 1、我的思路 申请容器vector1 遍历第一个数组,剔除不属于第二个数组的元素,放在容器vector1,然后升序排列 申请辅助空间vector2 遍历第一个数组,然后依次
阅读全文
922 奇偶数组排序
摘要:1、判断奇偶数的方法 A&1:等于1是偶数,等于0是奇数 A%2==0:不知道当时自己为啥会写A/2==0!!傻狗! 2、思路申请一个新的内存空间,遍历容器vector,然后奇数放奇数位,偶数放偶数位即可 3、代码
阅读全文
350--返回两个数组的交叉元素
摘要:1、这道题和349不同之处在于,不仅要返回重复数字,还要保证重复数字出现几次返回几次 2、上一题让我接触了set容器,这道题让我接触到了unordered_map容器(要知道map和unordered_map的区别!!!),基于哈希表 区别再链接里:https://blog.csdn.net/u01
阅读全文
349-两个数组的交集
摘要:用到STL中的set关联式容器 1、注意事项 set容器中元素都是排好顺序的!! set容器中无重复元素!! set中查找采用二分查找,查找速率是logn set中元素操作只需改变指针指向 2、常用命令 set<int>s; s.find(elem);返回指定元素的位置,如果没找到指定元素则返回s.
阅读全文
852-山脉数组的峰顶位置--没懂
摘要:2019-10-09 1、自己最害怕二分查找了。搞不清楚结束条件,low和high的最终位置 2、思路 二分查找和顺序查找,但是顺序查找时间和占用内存效果都比二分查找要好 3、比较中间位置的元素和左右两边位置值的大小! 4、代码
阅读全文
234 判断是否为回文链表
摘要:1、回文链表定义 前后对称 2、思路 快慢指针slow/fast 找到中间结点 把后半部分输入到栈中,然后从链表第一个元素和出栈元素比较,是否相等,如果不等 就返回false 特殊情况别忘了考虑空链表和只含有一个结点的链表!! stack<int>q;定义栈(先进后出) q.top();求出栈顶元素
阅读全文
203单链表--移除单链表中重复的元素
摘要:1、思路: 本人已经感觉到双指针的无敌了!! 建立头节点phead和指向头节点的指针p,为了解决单链表找不到上一个结点的问题 结束条件为head!=NULL,比较head和val的值,删除重复的元素 p->next=head->next;head=head->next 2、图解 3、代码实现
阅读全文
83删除链表中的重复元素
摘要:1、思路 吸取了前几道题设置头节点重新插入的想法 建立空的头节点,和一个指向结点的指针p用来控制插入的位置 判断第一个值和第二个值是否相等相等,链表头指针向后移动,直至不等,把head结点插入到空结点后面,直至完成 2、错误 错误提示:Line 16: Char 18: runtime error:
阅读全文
21合并两个有序链表
摘要:1、思路: 申请一个头节点phead,和指向头节点的指针p l1代表链表1的第一个结点,l2同理 判断两个链表是否为空 比较l1和l2的大小,小的插入头节点的后面,然后将指针移动到下一位 终止条件是l1和l2结点不为空 当有一个为空的时候,直接将剩下的结点插在p后面!! 2、代码
阅读全文
876单链表--返回链表中间位置的结点
摘要:1、思路:自己想出来的是暴力法,用到双指针p1,p2;看了解析还有一种快慢指针法,慢指针走一步,快指针走两步!!分奇偶讨论! 第一个指针p1历求出链表的长度n 考虑到n的奇偶性质 如上图所示 2、暴力代码 3、快慢指针解法(也可以用来求链表最后n个结点)
阅读全文
|