Leetcode
文章平均质量分 69
乐行僧丶
这个作者很懒,什么都没留下…
展开
-
单链表逆置(递归和迭代)
迭代class Solution { public ListNode reverseList(ListNode head) { if (head == null) return head; ListNode a=head, b=head.next; head.next = null; while (b != null) { ListNode c = b.next; b.next = a; a = b; b = c;原创 2020-11-16 01:31:40 · 363 阅读 · 0 评论 -
层序遍历求树的深度
#include <bits/stdc++.h>using namespace std;struct TreeNode { int val; TreeNode *left, *right;};void dfsGetDepth(TreeNode *root, int &x) { if (!root) return; queue<TreeNode*> q; q.push(root); while (!q.empty()) { int原创 2020-11-09 21:20:30 · 612 阅读 · 1 评论 -
最长公共子序列(dp)
f[i][j]class Solution {public: int longestCommonSubsequence(string a, string b) { }};原创 2020-10-30 09:17:32 · 145 阅读 · 0 评论 -
最长回文子串
class Solution {public: string longestPalindrome(string s) { if (s.size()==1 || !s.size()) return s; if (s.size()==2 && s[0]==s[1]) return s; int n = s.siz(); vector<vector<bool>> f(n, vector<bool>(n)); // 记录子串的起始索引和长度原创 2020-10-29 07:48:54 · 131 阅读 · 0 评论 -
LeetCode 38.报数
AC代码(C++):class Solution {public: string countAndSay(int n) { string a="1"; while(-- n){ string ans; int cnt = 0; char c = a[0]; f...原创 2019-06-04 19:13:00 · 180 阅读 · 0 评论 -
LeetCode 70.爬楼梯
AC代码(C++):简单的一维dp,可以用递推的方式或记忆化搜索的方式。本题本质是求fibonacci数列的第n项:class Solution {public: int climbStairs(int n) { int dp[n+1]; dp[0]=dp[1]=1; for(int i=2; i<=n; ++i) ...原创 2019-06-04 18:23:06 · 123 阅读 · 0 评论 -
LeetCode 58.最后一个单词的长度
AC代码(C++):class Solution {public: int lengthOfLastWord(string s) { if(!s.c_str()) return 0; //去除末尾的空格 int i=s.length()-1; while(s[i]==' ' && i&...原创 2019-06-04 14:49:45 · 109 阅读 · 0 评论 -
LeetCode 9.回文数(C++)
AC代码(C++):class Solution {public: bool isPalindrome(int x) { string s = to_string(x); for(int i=0; i<s.length(); ++i){ if(s[i]!=s[s.length()-1-i]) ...原创 2019-06-03 22:24:00 · 264 阅读 · 0 评论 -
LeetCode 120.三角形的最小路径和(二维DP)
题目描述 给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很加...原创 2018-09-03 12:13:52 · 511 阅读 · 0 评论 -
LeetCode 283.Move Zeros
题目描述:Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements. 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。样例输入:[0,1,0...原创 2018-08-27 10:28:06 · 263 阅读 · 0 评论 -
LeetCode 7.整数反转(C++)
AC代码(C++):class Solution {public: //将x转化为一个对应的字符串并且去除前导0 string res(int x){ string s = to_string(x), ans; //反转字符串 for(int i=0; i<s.length()/2; ++i){ swap(...原创 2019-06-03 19:23:01 · 145 阅读 · 0 评论 -
LeetCode 66.加一(C++ 大数相加)
思路:1.由于题目未给定数字的长度,因此需要字符串模拟来表示大整数,用C/C++基本类型是表示不出来的,我试过long long过了大概50个样例,就溢出了。2.模拟大数相加,在本题中,就是一个大数加1。AC代码(C++):class Solution {public: vector<int> plusOne(vector<int> &digits...原创 2019-06-06 08:08:14 · 634 阅读 · 0 评论 -
LeetCode 125.验证回文串(C++)
AC代码(C++):思路:1.去除不合法的字符,题目中只有大小写字母和数字为合法的字符。2.将大写统一处理为小写,方便处理。3.进行回文判断。bool isPalindrome(string& s) { string t; for(int i=0; i<s.length(); ++i){ if(s[i]!=' ' && isl...原创 2019-06-05 19:10:03 · 267 阅读 · 0 评论