回文串的定义 两种回文串:奇数:字母的出现频次偶数:字母的出现频次 题目 思路 哈希记录每个字符的个数,统计偶数的和奇数的字符,偶数的字符个数加1则为当前最大的回文串。 代码: class Solution { public: int longestPalindrome(string s) { in Read More
posted @ 2021-09-26 16:42
A-inspire
Views(61)
Comments(0)
Diggs(0)
快速排序 #include <stdio.h> int a[101], n;//定义全局变量,这两个变量需要在子函数中使用 void quicksort(int left, int right) { int i, j, t, temp; if (left > right) return; temp Read More
posted @ 2021-09-26 16:40
A-inspire
Views(96)
Comments(0)
Diggs(0)
思路 遍历字符串,同时在前后字符串不同时停止计数, class Solution(object): def compressString(self, S): """ :type S: str :rtype: str """ if not S: return '' res = [] count = 1 Read More
posted @ 2021-09-26 16:38
A-inspire
Views(57)
Comments(0)
Diggs(0)
题目 思路: class Solution: def spiralOrder(self, matrix: List[List[int]]) -> List[int]: result = [] if not matrix: return [] up = 0 down = len(matrix) - 1 Read More
posted @ 2021-09-26 16:37
A-inspire
Views(28)
Comments(0)
Diggs(0)
思路 题目可以划分为多个重叠子问题,爬到N阶梯的方法数量,等于两个部分之和:1.爬上N-1阶梯的方法数量,因为再爬一阶就能达到第N阶2.爬上N-2阶梯的方法数量,因为再爬二阶梯就能达到第N阶 因此得公式:dp[n] = dp[n-1]+dp[n-2]同时需要初始化dp[0] = 1和dp[1] = Read More
posted @ 2021-09-26 16:35
A-inspire
Views(28)
Comments(0)
Diggs(0)
思路 代码: class Solution { public: int longestCommonSubsequence(string text1, string text2) { if(text1.size()==0||text2.size()==0) { return 0; } int dp[t Read More
posted @ 2021-09-26 16:33
A-inspire
Views(45)
Comments(0)
Diggs(0)
思路 明确dp[i][j]数组的意义:前i种,总金额为j的组合数状态转移方程:第i种选或不选共两种,dp[i][j] = dp[i-1][j]+dp[i][j-coins[i-1]],但要保证j-coins[i-1]大于等于0,否则为dp[i][j] = dp[i-1][j]。边界条件:dp[0][ Read More
posted @ 2021-09-26 16:32
A-inspire
Views(51)
Comments(0)
Diggs(0)
思路 代码: /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class S Read More
posted @ 2021-09-26 16:30
A-inspire
Views(55)
Comments(0)
Diggs(0)
思路 定义一个新的节点,交换左右子树,递归左右子树。 代码: /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), righ Read More
posted @ 2021-09-26 16:29
A-inspire
Views(329)
Comments(0)
Diggs(0)
代码: /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ class Solution { public: ListNode* ReverseList( Read More
posted @ 2021-09-26 16:27
A-inspire
Views(41)
Comments(0)
Diggs(0)
代码: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None clas Read More
posted @ 2021-09-26 16:27
A-inspire
Views(28)
Comments(0)
Diggs(0)
思路 动归 贪心 class Solution { public: int cutRope(int number) { if (number < 2) { return 0; } if (number == 2) { return 1; } if(number == 3) { return 2; } Read More
posted @ 2021-09-26 16:25
A-inspire
Views(51)
Comments(0)
Diggs(0)
思路 假设:若b>a,且存在,a + b = s;(a - m ) + (b + m) = s则:(a - m )(b + m)=ab - (b-a)m - m*m < ab;说明外层的乘积更小也就是说依然是左右夹逼法!!!只需要2个指针1.left开头,right指向结尾2.如果和小于sum,说明 Read More
posted @ 2021-09-26 16:24
A-inspire
Views(37)
Comments(0)
Diggs(0)
思路 两次循环,第一次循环是快慢指针,若链表不是环形,则快指针先到表尾NULL,若是环形,快慢指针会相遇。相遇后将快慢指针之一置到表头head,然后开始第二次循环,此时快慢指针同速移动。当快慢指针再次相遇时到达链表开始入环的第一个节点。 代码 /** * Definition for singly- Read More
posted @ 2021-09-26 16:22
A-inspire
Views(28)
Comments(0)
Diggs(0)
思路 代码: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ cla Read More
posted @ 2021-09-26 16:21
A-inspire
Views(20)
Comments(0)
Diggs(0)
思路 想象一下,两名运动员以不同的速度在环形赛道上跑步会发生什么? 算法 通过使用具有 不同速度 的快、慢两个指针遍历链表,空间复杂度可以被降低至 O(1)O(1)。慢指针每次移动一步,而快指针每次移动两步。 如果列表中不存在环,最终快指针将会最先到达尾部,此时我们可以返回 false。 现在考虑一 Read More
posted @ 2021-09-26 16:19
A-inspire
Views(32)
Comments(0)
Diggs(0)
思路 桶排序 将数组排序,放入各个对应的桶中,把各个空桶输出出来 代码: class Solution { public: vector<int> findDisappearedNumbers(vector<int>& nums) { sort(nums.begin(),nums.end()); v Read More
posted @ 2021-09-26 16:18
A-inspire
Views(23)
Comments(0)
Diggs(0)
思路 反向中序遍历二叉树,将结果进行累加。 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int Read More
posted @ 2021-09-26 16:17
A-inspire
Views(30)
Comments(0)
Diggs(0)
代码: class Solution { int n,res = 0; public: void help(string&s,int left,int right) { while(left>=0&&right<n) { if(s[left--]==s[right++]) { ++res; } el Read More
posted @ 2021-09-26 16:16
A-inspire
Views(21)
Comments(0)
Diggs(0)
思路 在原始信息和哈希映射使用的实际键值之间建立映射关系,先将单词字母按照字母表的顺序进行排列,若排列的结果相同,则为字母异位词 代码 class Solution { public: vector<vector<string>> groupAnagrams(vector<string>& strs Read More
posted @ 2021-09-26 16:15
A-inspire
Views(24)
Comments(0)
Diggs(0)

浙公网安备 33010602011771号