- 博客(17)
- 收藏
- 关注
原创 LeetCode刷题——215. 数组中的第K个最大元素(中等)——快速查找/堆排序/挖坑法
我的解法:暴力查表class Solution {public: int findKthLargest(vector<int>& nums, int k) { multimap<int,int> contact; int i=-1; for(auto a:nums){ contact.insert({a,++i}); } int size=contact..
2022-04-14 15:49:29
582
原创 LeetCode刷题——1672. 最富有客户的资产总量(简单)
我的解法:直接遍历class Solution {public: int maximumWealth(vector<vector<int>>& accounts) { int m=accounts.size(); int n=accounts[0].size(); int max=0; for(int i=0;i<m;i++){ int sum=0; ..
2022-04-13 20:24:02
444
原创 LeetCode刷题——1342. 将数字变成 0 的操作次数(简单)
笑死嘞,1.29的题,属实想让大家好好跨年我的解法:class Solution {public: int numberOfSteps(int num) { int count=0; while(num){ if(num%2){ num-=1; }else{ num/=2; } count++;..
2022-04-13 19:45:46
464
原创 LeetCode——1337. 矩阵中战斗力最弱的 K 行(中等)——二分查找 + 堆/快速选择
我的解法:有点疲惫,就恩写,来回查表class Solution {public: vector<int> kWeakestRows(vector<vector<int>>& mat, int k) { vector<int> rank;//建立战斗力表 for(auto a:mat){ rank.push_back(count(a.cbegin(),a.cend(),1));..
2022-04-13 16:00:37
1355
原创 LeetCode刷题——876. 链表的中间结点(简单)——快慢指针
我的解法:直接快慢指针/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : va..
2022-04-13 13:11:00
1022
原创 LeetCode刷题——412. Fizz Buzz(简单)
我的解法:没啥写头,不过我以为必须用数组呢结果不是class Solution {public: vector<string> fizzBuzz(int n) { string answer[n+1]; for(int i=1;i<n+1;i++){ if(!(i%3)&&!(i%5)){ answer[i]="FizzBuzz"; }else..
2022-04-12 18:12:35
532
1
原创 LeetCode刷题——383. 赎金信(简单)——字符统计
我的写法:建立map查表class Solution {public: bool canConstruct(string ransomNote, string magazine) { map<char,int> content; for(char a:magazine){ content[a]++; } for(auto begin=ransomNote.cbegin();begin&..
2022-04-12 17:23:06
1008
原创 LeetCode刷题——206. 反转链表(简单)——迭代(双指针)
我的解法:双指针迭代/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : v...
2022-04-11 19:13:06
108
原创 LeetCode刷题——234. 回文链表(简单)——快慢指针
我的解法:暴力解法,头尾依次对比/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *n...
2022-04-08 15:17:08
202
原创 LeetCode刷题——13. 罗马数字转整数(简单)——查表
按顺序做被第4题二分法绊咯半天,做个新手题单压压惊我的解法:分析对应书写规则(当前数与其右边数对比,若左>=右,则用作加法,否则用作减法),然后查表但内存消耗偏高,可借鉴下其他写法如用switch替代mapclass Solution {public: int romanToInt(string s) { map<char,int> excle={{'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',5
2022-04-06 15:37:15
334
原创 LeetCode刷题——4.寻找两个正序数组的中位数(困难)——二分查找
我的解法:二分查找classSolution{public:doublefindMedianSortedArrays(vector<int>&nums1,vector<int>&nums2){if(nums1.size()>nums2.size()){autotemp=nums1;nums1=nums2;...
2022-04-05 15:30:19
1112
原创 LeetCode刷题——3.无重复字符的最长子串(中等)——滑动窗口
我的解法:和解法1一样classSolution{public:intlengthOfLongestSubstring(strings){intstart(0),end(0),length(0),result(0);intsSize=s.size();while(end<sSize){chartemp=s[end];for(intp...
2022-04-05 15:05:49
133
原创 LeetCode刷题——2.两数相加(中等)——单链表
熟悉单链表操作:运用单链表指针遍历,注意不取空指针内值我的解法:缺点:不应该直接用l1,l2遍历,因为无法回到原链表起始点,应该令创建指针p1,p2用其遍历链表。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * L...
2022-04-05 14:43:11
1189
原创 LeetCode刷题记录——1.两数之和(简单)——双循环
我的解法:太久没写咯有点傻逼咯写的classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){inti,j;for(i=0,j=1;i==j||nums[i]+nums[j]!=target;++j){if(j==nums.size()-1){+...
2022-04-05 13:58:29
240
原创 向上转型,向下转型
简易理解:首先我们来了解转型的定义:1、向上转型(upcasting):子–>父(自动类型转换)2、向下转型(downcasting):父–>子(强制类型转换,需要加转换符)向上转型:在继承关系上,我们设计时通常在继承树上把父类画在上,子类在下,由于这种转型是沿着继承树往上走,所以我们把它称为【向上转型】。即:子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。特点:Java中父类的引用指向子类对象是自动成功的。
2022-01-09 14:23:42
115
原创 面向对象的三大特性:封装、继承、多态
封装:仅允许你想使用的对象访问类内部——通过留出外部接口。1、良好的封装能够减少耦合。2、类内部的结构可以自由修改。3、可以对成员进行更精确的控制。4、隐藏信息,实现细节。继承:由父类扩展出子类,如父类的“电脑”与相应子类的“笔记本电脑”“台式电脑”“生物电脑”,子类应真包含于父类。1、子类拥有父类非private的属性和方法。2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。3、子类可以用自己的方式实现父类的方法。学习继承一定少不了这三个东西:构造器、protec
2022-01-09 13:25:57
287
原创 面向对象 と面向过程
面向对象:将所要实现功能分解为有限个合适的类,将其搭建组合,实现目标。可以理解为:一个集体相互合作,灵活度高,易改写、拓展。面向过程:通过不断完善单一函数的功能来实现目标可以理解为:一个追求完美的人,但人力终究有限。参考:如何通俗易懂地举例说明「面向对象」和「面向过程」有什么区别? - 力扣(LeetCode)的回答 - 知乎 https://www.zhihu.com/question/27468564/answer/757537214如何通俗易懂地举例说明「面向对象」和「面向
2022-01-09 10:39:51
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人