![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日一题
我不是宸哥
要为真理而斗争
展开
-
JAVA三大变量
静态变量是属于类的,而不是属于类的某个特定实例。在类加载时创建,被所有实例共享。实例变量是属于类的特定实例的,在对象创建时被初始化,存在于对象的整个生命周期内。局部变量定义在方法、构造函数或代码块内部,只在定义它的作用域内有效。实例变量的访问通常通过对象实例来进行,如 person.name。局部变量的生命周期仅限于所在方法、构造函数或代码块的执行期间。局部变量只能在其作用域内访问,无法被其他方法或对象访问。实例变量可以被不同的实例访问,每个实例有自己的一份。它在类的整个生命周期内存在,直到类被卸载。原创 2023-12-19 18:51:26 · 453 阅读 · 0 评论 -
每日一题944. 删列造序
好久没刷题了,先来一道简单题造一下给你由 n 个小写字母字符串组成的数组 strs,其中每个字符串长度相等。这些字符串可以每个一行,排成一个网格。例如,strs = [“abc”, “bce”, “cae”] 可以排列为:abcbcecae你需要找出并删除 不是按字典序升序排列的 列。在上面的例子(下标从 0 开始)中,列 0(‘a’, ‘b’, ‘c’)和列 2(‘c’, ‘e’, ‘e’)都是按升序排列的,而列 1(‘b’, ‘c’, ‘a’)不是,所以要删除列 1 。返回你需要删除的列数原创 2022-05-12 16:36:41 · 122 阅读 · 0 评论 -
图片平滑器
图像平滑器 是大小为3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。方法一:没什么好说的,classSolution{public:vector<...原创 2022-03-24 16:42:37 · 128 阅读 · 0 评论 -
图片平滑器
图像平滑器 是大小为3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。每个单元格的平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即,需要计算蓝色平滑器中 9 个单元格的平均值)。如果一个单元格周围存在单元格缺失的情况,则计算平均灰度时不考虑缺失的单元格(即,需要计算红色平滑器中 4 个单元格的平均值)。方法一:没什么好说的,classSolution{public:vector<...原创 2022-03-24 16:42:37 · 128 阅读 · 0 评论 -
每日一题15
给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。方法一:跟每日一题14很相似,先排序,再双指针。classSolution{public:voidisans(intsum,int*ans,inttarget){if(abs(sum-target)<abs(*ans-target)){...原创 2022-03-18 16:16:58 · 181 阅读 · 0 评论 -
每日一题14
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。方法一:曾设想使用三层循环来暴力求解,但发现时间复杂度过高并且要求不重复的三元组还需要使用哈希,代码也复杂。 优化后可以使用两层循环,第二层循环加双指针,可以更好的完成classSolution{public:vector<vector<int>>t...原创 2022-03-18 14:47:50 · 234 阅读 · 0 评论 -
每日一题5
给你一个字符串s,找到s中最长的回文子串。方法一,暴力解法(似乎时间太长了哈哈classSolution{public:boolispalindrome(strings){for(inti=0;i<s.size()/2;i++){if(s[i]!=s[s.size()-1-i]){returnfalse;}}...原创 2022-03-16 16:02:20 · 103 阅读 · 0 评论 -
每日一题2
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。方法一:滑动窗口,用一个哈希表记录窗口中的元素。classSolution{public:intlengthOfLongestSubstring(strings){unordered_map<char,int>map1;intn=s.size();intrk=-1;intans=0;...原创 2022-03-14 14:37:41 · 175 阅读 · 0 评论 -
每日一题1
假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设答案总是存在。方法一:我自己的暴力解法,两个for循环因此时间复杂度为O(N2)。classSolution{public:vector<string>findRestaurant(vector<string>&...原创 2022-03-14 13:23:35 · 79 阅读 · 0 评论 -
数据结构每日一题20
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你 只能 使用标准的栈操作 —— 也就是只有push to top,peek/pop from top,siz...原创 2022-03-10 15:54:28 · 207 阅读 · 0 评论 -
数据结构每日一题19
给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:1左括号必须用相同类型的右括号闭合。2左括号必须以正确的顺序闭合。方法一:用栈记录classSolution{public:boolisValid(strings){stack<char>stack1;intn=s.length();for(inti=0;i<...原创 2022-03-10 15:38:07 · 237 阅读 · 0 评论 -
数据结构每日一题18
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。方法一:迭代法,挺简单的classSolution{public:ListNode*deleteDuplicates(ListNode*head){if(!head){returnhead;}ListNode*cur=head;while(cur->...原创 2022-03-10 14:36:19 · 161 阅读 · 0 评论 -
数据结构每日一题17
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。方法一:反转链表首先想到用一个栈存储链表里的val,利用栈FILO的特性,再遍历一次链表即可完成反转,O(N)的复杂度classSolution{public:ListNode*reverseList(ListNode*head){if(head==NULL){returnhead;}ListNode*pre=...原创 2022-03-10 14:18:59 · 74 阅读 · 0 评论 -
数据结构每日一题16
给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val == val的节点,并返回新的头节点。方法一:递归classSolution{public:ListNode*removeElements(ListNode*head,intval){if(head==NULL){returnhead;}head->next=remov...原创 2022-03-10 13:59:56 · 145 阅读 · 0 评论 -
数据结构每日一题15
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。方法一:先创建一个哑节点,用一个指针始终指着,再创建一个节点pre指向这个哑节点。比较l1和l2的大小,将pre的next指向其中小的那个最后返回哑节点的nextclassSolution{public:ListNode*mergeTwoLists(ListNode*list1,ListNode*list2){if(list1==NULL){...原创 2022-03-09 17:30:05 · 66 阅读 · 0 评论 -
数据结构每日一题14
给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环 ,则返回 true 。 否则,返回 false 。一。遍历一遍链表,用哈希表记录走过的节点,如果遇到节点在哈希表中已经存在,则返回true。classSolution..原创 2022-03-09 15:34:32 · 289 阅读 · 0 评论 -
数据结构每日一题13
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。首先判断两个字符串是否相等,如果不相等一定不是。再遍历一个字符串将其元素和出现次数添加进一个哈希表中。classSolution{public:boolisAnagram(strings,stringt){if(s.size()!=t.size()){ret...原创 2022-03-09 15:00:04 · 195 阅读 · 0 评论 -
数据结构每日一题12
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。本人方法:将第二个字符串里的元素添加进一个哈希表。再遍历第一个字符串,如果发现没有元素或者元素数量小于1则返回false,如果元素数量大于等于1则将其数量减一。classSolution{public:boolcan...原创 2022-03-09 14:35:28 · 147 阅读 · 0 评论 -
数据结构每日一题11
给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1 。先遍历一遍,把所有元素及其出现次数记录在一个哈希表中,在遍历一遍将只出现一次元素的下标返回。classSolution{public:intfirstUniqChar(strings){unordered_map<char,int>temp;for(charc:s){te...原创 2022-03-09 14:23:07 · 63 阅读 · 0 评论 -
数据结构每日一题10
给定一个mxn的矩阵,如果一个元素为0,则将其所在行和列的所有元素都设为0。请使用原地算法。使用两个数组记录每行,每列有无为零的元素,在遍历一次将有零的行列全置为零,需要遍历两次矩阵classSolution{public:voidsetZeroes(vector<vector<int>>&matrix){intm=matrix.size();intn=matrix[...原创 2022-03-04 16:27:16 · 274 阅读 · 0 评论 -
数据结构每日一题9
请你判断一个9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)用二维数组记录每行每列的元素出现个数,用三维数组记录每个小九宫格元素出现的个数classSolution{public:boolisValidSudoku(vector<vector<char>>&a...原创 2022-03-04 16:06:03 · 237 阅读 · 0 评论 -
数据结构每日一题8
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。主要是三角形的数学性质,classSolution{public:vector<vector<int>>generate(intnumRows){vector<vector<int>>Yh(numRows);for(inti=0;i<numRo...原创 2022-03-03 17:02:11 · 459 阅读 · 0 评论 -
数据结构每日一题7
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。将二维数组扁平化,对于一个mxn的矩阵其(i,j)就为 x原创 2022-03-03 16:40:22 · 79 阅读 · 0 评论 -
数据结构每日一题6
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。方法一:classSolution{public:intmaxProfit(vector<int>&prices){intbuy...原创 2022-03-02 17:17:35 · 472 阅读 · 0 评论 -
数据结构每日一题5
给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。考虑使用无序哈希表unordered_mapunordered_map<key,value> m; m.count(key)是否存在classSolution{public:vector<int>intersect(vector<i...原创 2022-03-02 16:56:38 · 208 阅读 · 0 评论 -
每日一题剑指3
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]用栈FILO的特性classSolution{public:vector<int>reversePrint(ListNode*head){stack<int>stack1;vector<int>vector1;ListNode*...原创 2022-03-01 15:48:11 · 179 阅读 · 0 评论 -
每日一题剑指2
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top(); --> 返回 0....原创 2022-03-01 15:21:00 · 47 阅读 · 0 评论 -
数据结构每日一题4
给你两个按 非递减顺序 排列的整数数组nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。classSolution{pub...原创 2022-03-01 14:44:10 · 211 阅读 · 0 评论 -
数据结构每日一题3
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。先来个暴力的classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){for(int...原创 2022-03-01 14:27:10 · 195 阅读 · 0 评论 -
每日一题剑指1
用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )用两个栈,栈1负责进,栈2负责出,当栈2有元素,就出栈2。当栈2没有元素就把栈1的元素全部放入栈2。classCQueue{stack<int>stack1;stack<int>stack2;public:CQ...原创 2022-02-28 21:49:54 · 52 阅读 · 0 评论 -
数据结构每日一题2
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。动态规划fi表示以nums[i]结尾的所有连续子数组的最大和。f(i)=max{f(i−1)+nums[i],nums[i]} 比较单独后一个数和前一个f(i)的大小class Solution {public: int maxSubArray(vector<int>& nums) {int pre =0; int maxs原创 2022-02-28 20:57:21 · 63 阅读 · 0 评论 -
数据结构每日一题1
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false。1.暴力解这是我一开始最先想到的class Solution {public:bool containsDuplicate(vector<int>& nums) {int i =0;for (i;i<(nums.size()-1);i++){for (int j =i+1;j<nums.size();j++)原创 2022-02-28 16:09:41 · 565 阅读 · 0 评论