力扣前10-20题相对可以的答案解析,自己刷题打卡,欢迎大家一起讨论,
不过博客还未开通评论功能待后续开发。
11. 盛最多水的容器
难度中等1970
给你 n
个非负整数 a1,a2,...,a``n
,每个数代表坐标中的一个点 (i, ai)
。在坐标内画 n
条垂直线,垂直线 i
的两个端点分别为 (i, ai)
和 (i, 0)
。找出其中的两条线,使得它们与 x
轴共同构成的容器可以容纳最多的水。
**说明:**你不能倾斜容器。
示例 1:
输入:[1,8,6,2,5,4,8,3,7]
输出:49
解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。
示例 2:
输入:height = [1,1]
输出:1
示例 3:
输入:height = [4,3,2,1,4]
输出:16
示例 4:
输入:height = [1,2,1]
输出:2
提示:
n = height.length
2 <= n <= 3 * 104
0 <= height[i] <= 3 * 104
代码块思路
这个题就比较直接,注意指针变换条件
class Solution {
public:
int maxArea(vector& height) {
int l = 0;
int r = height.size()-1;
int res;
while(l
12. 整数转罗马数字
罗马数字包含以下七种字符: I
, V
, X
, L
,C
,D
和 M
。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II
,即为两个并列的 1。12 写做 XII
,即为 X
+ II
。 27 写做 XXVII
, 即为 XX
+ V
+ II
。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII
,而是 IV
。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX
。这个特殊的规则只适用于以下六种情况:
I
可以放在 V
(5) 和 X
(10) 的左边,来表示 4 和 9。
X
可以放在 L
(50) 和 C
(100) 的左边,来表示 40 和 90。
C
可以放在 D
(500) 和 M
(1000) 的左边,来表示 400 和 900。
给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。
示例 1:
输入: 3
输出: "III"
示例 2:
输入: 4
输出: "IV"
示例 3:
输入: 9
输出: "IX"
示例 4:
输入: 58
输出: "LVIII"
解释: L = 50, V = 5, III = 3.
示例 5:
输入: 1994
输出: "MCMXCIV"
解释: M = 1000, CM = 900, XC = 90, IV = 4.
代码块思路
这个题刚刚开始写的map,发现map给自动排序了
class Solution {
public:
string intToRoman(int num) {
vector> table={
{1000,"M"},{900,"CM"},{500,"D"},{400,"CD"},
{100,"C"},{90,"XC"},{50,"L"},{40,"XL"},{10,"X"},
{9,"IX"},{5,"V"},{4,"IV"},{1,"I"},
};
string res;
for(auto &s : table){
//std::cout << s.first << ':' << s.second << endl;
while(num >=s.first){
res += s.second;
num -= s.first;
}
}
return res;
}
};
13. 罗马数字转整数
难度简单1112收藏分享切换为英文接收动态反馈
罗马数字包含以下七种字符: I
, V
, X
, L
,C
,D
和 M
。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II
,即为两个并列的 1。12 写做 XII
,即为 X
+ II
。 27 写做 XXVII
, 即为 XX
+ V
+ II
。
通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII
,而是 IV
。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX
。这个特殊的规则只适用于以下六种情况:
I
可以放在 V
(5) 和 X
(10) 的左边,来表示 4 和 9。
X
可以放在 L
(50) 和 C
(100) 的左边,来表示 40 和 90。
C
可以放在 D
(500) 和 M
(1000) 的左边,来表示 400 和 900。
给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。
示例 1:
输入: "III"
输出: 3
示例 2:
输入: "IV"
输出: 4
示例 3:
输入: "IX"
输出: 9
示例 4:
输入: "LVIII"
输出: 58
解释: L = 50, V= 5, III = 3.
示例 5:
输入: "MCMXCIV"
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
提示:
题目所给测试用例皆符合罗马数字书写规则,不会出现跨位等情况。
IC 和 IM 这样的例子并不符合题目要求,49 应该写作 XLIX,999 应该写作 CMXCIX 。
关于罗马数字的详尽书写规则,可以参考 罗马数字 - Mathematics 。
代码块思路
主要在什么时候判断9,4这类数
class Solution {
public:
int romanToInt(string s) {
maphashMap {
{'M',1000},{'D',500},{'C',100},{'L',50},
{'X',10},{'V',5},{'I',1},
};
int res=0;
for(int i=0;i0 && hashMap[s[i]]>hashMap[s[i-1]])
res -= 2 * hashMap[s[i-1]];
res += hashMap[s[i]];
}
return res;
}
};
14. 最长公共前缀
难度简单1339收藏分享切换为英文接收动态反馈
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
代码块思路
这个题的考点是前缀,开始想迷糊了,保证前缀是一样的才能往下走
class Solution {
public:
string longestCommonPrefix(vector& strs) {
if(strs.size()==0) return "";
string res=strs[0];
for(auto &x : strs){
res = doubleComStr(res,x);
//cout << "res: " << res << "x: " << x << endl;
}
return res;
}
string doubleComStr(string const &s1,string const &s2){
int length = min(s1.size(),s2.size());
int index=0;
while(index
15. 三数之和
难度中等2741收藏分享切换为英文接收动态反馈
给你一个包含 n 个整数的数组 nums
,判断 nums
中是否存在三个元素 *a,b,c ,*使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。
**注意:**答案中不可以包含重复的三元组。
示例:
给定数组 nums = [-1, 0, 1, 2, -1, -4],
满足要求的三元组集合为:
[
[-1, 0, 1],
[-1, -1, 2]
]
代码块思路
参考2数之和
class Solution {
public:
vector> threeSum(vector& nums) {
vector> res;
sort(nums.begin(),nums.end());
for(int i=0;i0 && nums[i-1] == nums[i]) continue;
unordered_set hash;
for(int j=i+1;j i + 2 && nums[j] == nums[j-1] && nums[j-2] == nums[j-1]) continue;
int tmp = 0 - nums[i] - nums[j];
if(hash.find(tmp) != hash.end()){
res.push_back({nums[i],nums[j],tmp});
hash.erase(tmp);
}else
hash.insert(nums[j]);
}
}
return res;
}
};
16. 最接近的三数之和
难度中等627收藏分享切换为英文接收动态反馈
给定一个包括 n 个整数的数组 nums
和 一个目标值 target
。找出 nums
中的三个整数,使得它们的和与 target
最接近。返回这三个数的和。假定每组输入只存在唯一答案。
示例:
输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
提示:
3 <= nums.length <= 10^3
-10^3 <= nums[i] <= 10^3
-10^4 <= target <= 10^4
代码块思路
写了一个很简单的暴力
class Solution {
public:
int threeSumClosest(vector& nums, int target) {
sort(nums.begin(),nums.end());
int n = nums.size();
int diff=0,minabs=INT_MAX;
int res=0;
for(int i=0;i
后来改成了一个双指针的写法
class Solution {
public:
int threeSumClosest(vector& nums, int target)
{
sort(nums.begin(),nums.end());
int n = nums.size();
int best = INT_MAX;
int res;
for(int i=0;i
17. 电话号码的字母组合
难度中等988收藏分享切换为英文接收动态反馈
给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wiaOYviR-1605261981656)(…/images/Image-1605149772385.png)]
示例:
输入:"23"
输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
说明: 尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。
代码块思路
好久没写dfs,看了一下别人代码。思路好是很清晰
class Solution {
public:
string tmp;
vector res;
vector table= {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
void dfs(int index, string digits){
if(index==digits.size()){
res.push_back(tmp);
return ;
}
int n = digits[index]-'0';
for(int i=0;i letterCombinations(string digits) {
if(digits.size()==0) return res;
dfs(0,digits);
return res;
}
};
18. 四数之和
给定一个包含 n 个整数的数组 nums
和一个目标值 target
,判断 nums
中是否存在四个元素 *a,*b,c 和 d ,使得 a + b + c + d 的值与 target
相等?找出所有满足条件且不重复的四元组。
注意:
答案中不可以包含重复的四元组。
示例:
给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。
满足要求的四元组集合为:
[
[-1, 0, 0, 1],
[-2, -1, 1, 2],
[-2, 0, 0, 2]
]
代码块思路:
采用双指针来加快速度
class Solution {
public:
vector> fourSum(vector& nums, int target) {
vector> res;
if(nums.size()<4) return res;
sort(nums.begin(), nums.end());
int n = nums.size();
for(int i=0;i0 && nums[i] == nums[i - 1]) continue;
if(nums[i]+nums[i+1]+nums[i+2]+nums[i+3]>target) break;//起点太大,后面不可能
if(nums[i]+nums[n-3]+nums[n-2]+nums[n-1]i+1 && nums[j] == nums[j - 1]) continue;
if(nums[i]+nums[j]+nums[j+1]+nums[j+2]>target) break;
if(nums[i]+nums[j]+nums[n-2]+nums[n-1]
19. 删除链表的倒数第N个节点
难度中等1109
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
代码块思路
用一个快慢指针,快的先走n步,快慢始终相差n步
/**
* 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) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* dummy = new ListNode(0, head);
ListNode* fast=dummy;
for(int i=0;inext!=nullptr)
fast = fast->next;
else
return nullptr;
}
ListNode* low = dummy;
while(fast->next!=nullptr){
fast = fast->next;
low = low->next;
}
low->next = low->next->next;
ListNode* ans = dummy->next;
//delete dummy,fast,low;
return ans;
}
};
20. 有效的括号
难度简单1975
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
代码块思路
用一个stack来存左边的,按要求碰到右边的弹出
class Solution {
public:
bool isValid(string s) {
if(s.size()%2==1) return false;
stack tmp;
for(int i=0;i0 && tmp.top() =='(')
tmp.pop();
else if(s[i]==']' && tmp.size()>0 && tmp.top() =='[')
tmp.pop();
else if(s[i]=='}' && tmp.size()>0 && tmp.top() =='{')
tmp.pop();
else
return false;
}
if(tmp.empty()) return true;
return false;
}
};
你可能感兴趣的:(日常应用,字符串,dfs,oauth,regex)
JAVA List<String> 用 stream转为 List<Long>
墨着染霜华
java list
可以使用JavaStream将List转换为List,前提是这些字符串可以被正确解析为数字。ListlongList=strList.stream().flatMap(s->{try{returnStream.of(Long.parseLong(s));}catch(NumberFormatExceptione){returnStream.empty();}}).collect(Collector
Java-Matcher类
Lowjin_
Java 开发语言 java
Matcher类是Java正则表达式API的核心组件之一(位于java.util.regex包),用于执行复杂的字符串匹配操作。它与Pattern类配合使用,提供查找、替换、分组提取等功能。1.Matcher类的作用对输入字符串执行匹配操作(查找、替换等)支持分组提取(通过()捕获的子表达式)提供位置信息(匹配的起始和结束索引)支持多次匹配和重置2.创建Matcher对象Matcher对象必须通过
Java-Scanner类
Lowjin_
Java 开发语言 java
Scanner是Java中一个实用的文本扫描工具类(位于java.util包),主要用于从输入流(如键盘、文件或字符串)中解析基本数据类型和字符串。它通过正则表达式将输入分解为标记(tokens),并提供了多种方法来读取和转换这些标记。1.Scanner的核心功能功能说明读取输入从键盘、文件、字符串等来源读取数据。按类型解析自动将输入的文本转换为int、double、String等类型。分隔符控制
HarmonyOSNext华为账号一键登录:3秒完成登录的黑科技!
HarmonyOSNext华为账号一键登录:3秒完成登录的黑科技!\##HarmonyOSNext##ArkTs##教育本文适用于教育科普行业进行学习,有错误之处请指出我会修改。你以为登录只能输手机号+验证码?NO!华为账号一键登录直接让你「点击即登录」,彻底告别手动输入!基于OAuth2.0和OpenIDConnect协议构建,它让开发者秒级获取用户的身份标识UnionID+真实手机号,快速搭建
浅拷贝 ... 的作用
徐福记c
开发脚手架 python
浅拷贝在编程和软件开发中有重要的意义,尤其是在处理数据和对象时。以下是浅拷贝的主要意义:1.数据安全和隔离浅拷贝可以创建一个新对象,这个新对象包含原对象属性值的副本。对于基本数据类型(如数字、字符串等),浅拷贝会直接复制其值,而对于引用数据类型(如对象、数组等),它会复制引用地址。在修改新对象时,不会直接修改原对象的值(对于基本数据类型),从而保证了原数据的安全性。例如:在表格编辑场景中,通过浅拷
【LeetCode】滑动窗口相关算法题
在成都搬砖的鸭鸭
Golang刷LeetCode 算法 leetcode
目录1、介绍2、核心思想3、算法题【1】长度最小的子数组1、介绍滑动窗口算法是一种高效处理数组/字符串子序列化问题的技术,它通过维护一个动态的窗口来避免不必要的重复计算。2、核心思想1、窗口定义:使用两个指针表示当前考察的子序列2、窗口移动:右指针扩张,扩大窗口范围,包含新元素;左指针收缩,缩小窗口范围,排除旧元素3、状态维护:在窗口移动过程中维护关键状态信息3、算法题【1】长度最小的子数组Lee
2017暑训摸底(xdoj1045,xdoj1173,xdoj1007,xdoj1038)
Owen_Q
dp xdoj 搜索
由于时间没赶上摸底,只能跟一波新增的dp摸底,感觉难度一般般,可能有段时间内没做题的缘故吧暑训就要开始了呢A黑白棋思路:一上来就是个博弈搜索根据上一状态与这一状态必胜必败态的转换来判断先手的情况dfs搜索所有前项状态,若均为必败态,则该状态为必胜态,否则为必败态/*Author:Owen_Q*/#includeusingnamespacestd;inta[5][5];intdfs(intx,int
AtCoder Grand Contest 039
Owen_Q
搜索 图论 Atcoder
再战atcoder,误入grand局,赛后才意识到。偶然间发现,一年多前自己也是通过grand局狂涨800+分,甚是巧合A-ConnectionandDisconnection思路:这题就是一个简单的字符串计算问题,子串复制多次后变换最少元素消除连续相同元素。对于连续元素,其实只需要向下取整相间消除即可完成,最后单独统计一下首尾,处理掉复制连接处,再考虑一下所有元素均相同的情况即可。/*Autho
Python中的count()方法
溪流.ii
python 数据库
文章目录Python中的count()方法基本语法在不同数据类型中的使用1.列表(List)中的count()2.元组(Tuple)中的count()3.字符串(String)中的count()高级用法1.指定搜索范围2.统计复杂元素注意事项Python中的count()方法前言:count()是Python中用于序列类型(如列表、元组、字符串等)的内置方法,用于统计某个元素在序列中出现的次数。基
Qt的概述和安装、信号与槽、元对象系统、动态属性、字符串QString、容器、窗口部件与布局管理器、顺序容器、UI界面设计、数值输入输出、时间和日期、界面UI组件、模型视图、关联与集合容器、对话框
zhxup606
C++ qt ui 开发语言
涵盖Qt的概述和安装、信号与槽、元对象系统、动态属性、字符串QString、容器、窗口部件与布局管理器、顺序容器、UI界面设计、数值输入输出、时间和日期、界面UI组件、模型视图、关联与集合容器、对话框、多窗口开发、绘图、QGraphicsView绘图框架、文件处理、文件读写与事件、补充知识、INI配置文件、JSON文件操作、XML文件读写、和网络编程。每章将包含详细讲解、代码示例(demo),并确
1910. 删除一个字符串中所有出现的给定子字符串
Joyner2018
python 算法 leetcode 开发语言 python
字符串反复删除子串问题的多种解法解析✨题目描述给定两个字符串s和part,我们需要对s执行以下操作,直到s中不再包含任何子串part:每次找到s中最左边出现的part子串,并将其从s中删除。最后,返回所有part都被删除后的最终字符串。注意:子串指的是字符串中连续的字符序列。删除操作是从左到右,每次只删除最左边的一个匹配部分。示例说明示例1:输入:s="daabcbaabcbc",part="ab
java-数组常用api
远方啊~~
java java javascript git
Java数组相关api数组array中的api1.获取数组长度:arrays.length()在Java中要求一个数组的长度是可以直接用length属性来获取的int[]A={1,2,3};intlen=A.length;在Java中这种方式就可以直接获取到数组的长度。值得注意的是,在Java中还有一个length()方法。这个方法是针对字符串而言的,只能用来求字符串长度。此外还有一个size(
DAY 1 变量与格式化字符串
文章目录题目1:变量的认识小结:多重赋值题目2:格式化字符串小结:格式化字符串题目3:变量的基础运算题目1:变量的认识题目:定义三个变量a,b,c,并分别将整数1,2,3赋值给它们。然后,使用print()函数将每个变量的值单独打印出来,每个值占一行。输入:无输出:123a=1b=2c=3print(a)print(b)print(c)小结:多重赋值多重赋值:多重赋值允许你在一行代码里给多个变量同
DAY 2 字符串与比较运算
心落薄荷糖
Python训练营 python 算法
文章目录题目1:字符串的操作小结题目2:比较运算题目1:字符串的操作题目:定义两个字符串变量,str1赋值为“Hello”,str2赋值为“Python”。将这两个字符串拼接起来(中间加一个空格),并将结果存储在变量greeting中;计算greeting字符串的长度,存储在变量length中;获取greeting字符串的第一个字符,存储在变量first_char中。然后,使用f-string分三
python学习记录14
彤银浦
学习 python
1.字符串的编码和解码不同的计算机之间在信道中传输的信息本质上是二进制数据,因此当你有一串文本需要传输给另外一台电脑时,则需要将这串文本编译为二进制类型的数据。python中的二进制数据类型称为byte类型。将字符串的str类型转变为byte类型称为字符串的编码,将byte类型转变为str类型称为字符串的解码。字符串的编码用到的是encode的方法,语法格式为:string.encode(enco
如何用Python统计字符串(引用ASCII码)【两种方法】
*濒危物种*
python 前端 linux
要求实现:根据输入的字符串,统计其中大写字母、小写字母、数字、字符各有多少个【重要步骤提示】0-9的ASCII数字的ASCII码值取值范围为48-57;a-z小写英文字母的取值范围为97-122;A-Z大写英文字母的取值范围为65-90;Len()、append()方法的使用ord()函数获取字符对应的ASCII码值方法一#引到用户输入字符list1=list(input('请输入一行字符:'))
131. 分割回文串
题目:给你一个字符串s,请你将s分割成一些子串,使每个子串都是回文串。返回s所有可能的分割方案。示例:输入:s=“aab”输出:[[“a”,“a”,“b”],[“aa”,“b”]]解题思路:这道题还是通过回溯的方法暴力枚举所有可能的分割情况。当分割起点=字符串s的长度时,就是收获结果的时候。对于每层递归,我们去遍历所有可能的分割点,然后判断起始点到分割点的子串是否是回文串,如果是则可以将子串加入p
第06章_java常用类
假装不痛
java java jvm 开发语言
6.java常用类6.1String类publicclassMain{/*1.概述1.1String:字符串,使用一对""引起来表示1.2String是声明为final的,不可被继承1.3String实现了Serializable接口:表示字符串是支持序列化的实现了Comparable接口:表示String可以比较大小1.4String内部定义了finalchar[]value用于存储字符串数据(
Fiddler中文版抓包工具在跨域与OAuth调试中的深度应用
2501_91600747
http udp https websocket 网络安全 网络协议 tcp/ip
跨域和OAuth授权流程一直是Web和移动开发中最容易踩坑的领域。复杂的CORS配置、重定向中的Token传递、授权码流程的跳转,以及多域名环境下的Cookie共享,常常让开发者陷入调试困境。此时,一款能够精准捕获、修改、重放请求的抓包工具显得至关重要,而Fiddler抓包工具正是解决此类难题的核心武器。Fiddler中文网(https://telerik.com.cn/)为跨域和OAuth接入场
C++正则表达式语法
Coding小公仔
c/c++ c++ 正则表达式 开发语言
在C++中,正则表达式是处理文本模式匹配和字符串操作的强大工具。C++11及以后的标准库提供了头文件,支持正则表达式的使用。下面是C++正则表达式的核心语法规则和用法:一、基本正则表达式语法1.普通字符直接匹配自身,例如:a匹配字符a。2.元字符(需转义)具有特殊含义的字符,需用反斜杠\转义(在C++字符串中需用双反斜杠\\)。.:匹配除换行符外的任意字符。^:匹配字符串的开头。$:匹配字符串的结
FastJSON 解析错误分析与解决方案
小屁孩大帅-杨一凡
服务器 linux 前端 运维
常见原因及解决方案1.数据为空或非JSON格式原因:输入数据可能为空字符串、null或其他非JSON格式内容。解决方案:在解析前检查数据是否有效。if(jsonStr!=null&&!jsonStr.trim().isEmpty()){//检查是否以JSON对象或数组的符号开头if(jsonStr.trim().startsWith("{")||jsonStr.trim().startsWith(
LeetCode--38.外观数列
dying_man
leetcode 算法
前言:之前我不是说,我后续可能会讲一下递归吗,现在它来了,这道题会用到回溯的方法,并且比较纯粹哦解题思路:1.获取信息:(下面这些信息差不多是力扣上面的题目信息了,所以我这一环节在这次题解中的意义不大)外观数列是一个数位字符串序列,由递归公式定义:countAndSay(1)="1"countAndSay(n)是countAndSay(n-1)的行程长度编码。行程长度编码(RLE)是一种字符串压缩
代码随想录算法训练营第52天| 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104.建造最大岛屿
扛过今天777
算法 深度优先
101.孤岛的总面积卡码题目链接:101.孤岛的总面积学习链接:代码随想录题解:法一:count=0defdfs(grid,x,y):globalcountgrid[x][y]=0count+=1directions=[[1,0],[0,1],[-1,0],[0,-1]]fori,jindirections:next_x=x+inext_y=y+jifnext_x=len(grid)ornext_
将字符串数组String[]转换成List的三种方法
积极向上的Elbert
java学习 java 开发语言
通过Arrays.asList(strArray)方式,将数组转换List后,不能对List增删,只能查改,否则抛异常。String[]strArray=newString[2];Listlist=Arrays.asList(strArray);list.add("1");//此处会报错原因解析:Arrays.asList(strArray)返回值是java.util.Arrays类中一个私有静态
【C++】atoi和std::stoi
bluebonnet27
编程语言 # C++ c++ 算法 开发语言
两个将字符串转为int的方法atoi(C语言)atoi是C库中的一个函数,它定义在头文件里。其作用是把一个字符串转换为对应的整数。/*Convertastringtoaninteger.*/externintatoi(constchar*__nptr)__THROW__attribute_pure____nonnull((1))__wur;转换的原则如下:此函数接收一个以空字符'\0'结尾的字符串
Ruby 字符串(String)
froginwe11
开发语言
Ruby字符串(String)引言在编程语言中,字符串是处理文本数据的基础。Ruby作为一种动态、面向对象的语言,提供了丰富的字符串处理功能。本文将详细介绍Ruby中的字符串(String)类型,包括其基本用法、操作方法以及高级特性。字符串的基本概念在Ruby中,字符串是由一系列字符组成的序列。这些字符可以是字母、数字、标点符号等。字符串是不可变的,这意味着一旦创建,其内容就不能被修改。创建字符串
Ansible——lookup,过滤器
凤凰战士芭比Q
Ansible ansible linux
文章目录Ansible——lookup,过滤器lookup读取文件lookup生成随机密码lookup读取环境变量lookup读取Linux命令的执行结果lookup读取template变量替换后的文件lookup读取配置文件lookup读取DNS解析的值过滤器过滤器使用的位置过滤器对普通变量的操作过滤器对文件路径的操作过滤器对字符串变量的操作过滤器对JSON的操作过滤器对数据结构的操作过滤器的链
【C++】String的使用
nanguochenchuan
C++ c++ 开发语言
字符串基础概念std::stringvsC风格字符串std::string是C++标准库提供的字符串类,相比C风格的char*具有明显优势:自动内存管理丰富的成员函数安全的边界检查支持运算符重载#include//必须包含的头文件std::strings1;//空字符串std::strings2="Hello";//直接初始化charcstr[]="World";std::strings3(cst
uniapp处理后端返回的html字符串
萌新咦~
uni-app
前言:采用v-html方法处理1.处理前↵↵document.forms[0].submit();2.处理后↵↵document.forms[0].submit();3.跳转页面方法//传参uni.setStorageSync("ICBC_GW_V3_HTML",res.result.payUrl)//跳转uni.navigateTo({url:"/subpages/cashier/webView
GO语言学习之字符串和流程控制
cr7xin
golang 学习 开发语言
文章目录一.字符串1.1.1字符串转义符1.1.2多行字符串1.1.3字符串的常用操作1.2byte和rune类型1.2.1修改字符串1.2.2类型转换二.流程控制1.1ifelse(分支结构)1.1.1基本写法1.1.2特殊写法1.2for(循环结构)1.2.1for循环的基本格式1.2.2forrange(键值循环)1.3switchcase1.3.1基本格式1.3.2多个值在一个分支1.3.
SQL的各种连接查询
xieke90
UNION ALL UNION 外连接 内连接 JOIN
一、内连接
概念:内连接就是使用比较运算符根据每个表共有的列的值匹配两个表中的行。
内连接(join 或者inner join )
SQL语法:
select * fron
java编程思想--复用类
百合不是茶
java 继承 代理 组合 final类
复用类看着标题都不知道是什么,再加上java编程思想翻译的比价难懂,所以知道现在才看这本软件界的奇书
一:组合语法:就是将对象的引用放到新类中即可
代码:
package com.wj.reuse;
/**
*
* @author Administrator 组
[开源与生态系统]国产CPU的生态系统
comsci
cpu
计算机要从娃娃抓起...而孩子最喜欢玩游戏....
要让国产CPU在国内市场形成自己的生态系统和产业链,国家和企业就不能够忘记游戏这个非常关键的环节....
投入一些资金和资源,人力和政策,让游
JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
商人shang
jvm内存
jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非heap区又分:Code Cache(代码缓存区)、Perm Gen(永久代)、Jvm Stack(java虚拟机栈)、Local Method Statck(本地方法栈)。
HotSpot虚拟机GC算法采用分代收
页面上调用 QQ
oloz
qq
<A href="tencent://message/?uin=707321921&Site=有事Q我&Menu=yes">
<img style="border:0px;" src=http://wpa.qq.com/pa?p=1:707321921:1></a>
一些问题
文强chu
问题
1.eclipse 导出 doc 出现“The Javadoc command does not exist.” javadoc command 选择 jdk/bin/javadoc.exe 2.tomcate 配置 web 项目 .....
SQL:3.mysql * 必须得放前面 否则 select&nbs
生活没有安全感
小桔子
生活 孤独 安全感
圈子好小,身边朋友没几个,交心的更是少之又少。在深圳,除了男朋友,没几个亲密的人。不知不觉男朋友成了唯一的依靠,毫不夸张的说,业余生活的全部。现在感情好,也很幸福的。但是说不准难免人心会变嘛,不发生什么大家都乐融融,发生什么很难处理。我想说如果不幸被分手(无论原因如何),生活难免变化很大,在深圳,我没交心的朋友。明
php 基础语法
aichenglong
php 基本语法
1 .1 php变量必须以$开头
<?php
$a=” b”;
echo
?>
1 .2 php基本数据库类型 Integer float/double Boolean string
1 .3 复合数据类型 数组array和对象 object
1 .4 特殊数据类型 null 资源类型(resource) $co
mybatis tools 配置详解
AILIKES
mybatis
MyBatis Generator中文文档
MyBatis Generator中文文档地址:
http://generator.sturgeon.mopaas.com/
该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。
本文使用Markdown进行编辑,但是博客显示效
继承与多态的探讨
百合不是茶
JAVA面向对象 继承 对象
继承 extends 多态
继承是面向对象最经常使用的特征之一:继承语法是通过继承发、基类的域和方法 //继承就是从现有的类中生成一个新的类,这个新类拥有现有类的所有extends是使用继承的关键字:
在A类中定义属性和方法;
class A{
//定义属性
int age;
//定义方法
public void go
JS的undefined与null的实例
bijian1013
JavaScript JavaScript
<form name="theform" id="theform">
</form>
<script language="javascript">
var a
alert(typeof(b)); //这里提示undefined
if(theform.datas
TDD实践(一)
bijian1013
java 敏捷 TDD
一.TDD概述
TDD:测试驱动开发,它的基本思想就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
[Maven学习笔记十]Maven Profile与资源文件过滤器
bit1129
maven
什么是Maven Profile
Maven Profile的含义是针对编译打包环境和编译打包目的配置定制,可以在不同的环境上选择相应的配置,例如DB信息,可以根据是为开发环境编译打包,还是为生产环境编译打包,动态的选择正确的DB配置信息
Profile的激活机制
1.Profile可以手工激活,比如在Intellij Idea的Maven Project视图中可以选择一个P
【Hive八】Hive用户自定义生成表函数(UDTF)
bit1129
hive
1. 什么是UDTF
UDTF,是User Defined Table-Generating Functions,一眼看上去,貌似是用户自定义生成表函数,这个生成表不应该理解为生成了一个HQL Table, 貌似更应该理解为生成了类似关系表的二维行数据集
2. 如何实现UDTF
继承org.apache.hadoop.hive.ql.udf.generic
tfs restful api 加auth 2.0认计
ronin47
目前思考如何给tfs的ngx-tfs api增加安全性。有如下两点:
一是基于客户端的ip设置。这个比较容易实现。
二是基于OAuth2.0认证,这个需要lua,实现起来相对于一来说,有些难度。
现在重点介绍第二种方法实现思路。
前言:我们使用Nginx的Lua中间件建立了OAuth2认证和授权层。如果你也有此打算,阅读下面的文档,实现自动化并获得收益。SeatGe
jdk环境变量配置
byalias
java jdk
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置:
1、下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是:jdk-7u79-windows-x64.exe
2、安装jdk-7u79-windows-x64.exe
3、配置环境变量:右击"计算机"-->&quo
《代码大全》表驱动法-Table Driven Approach-2
bylijinnan
java
package com.ljn.base;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.uti
SQL 数值四舍五入 小数点后保留2位
chicony
四舍五入
1.round() 函数是四舍五入用,第一个参数是我们要被操作的数据,第二个参数是设置我们四舍五入之后小数点后显示几位。
2.numeric 函数的2个参数,第一个表示数据长度,第二个参数表示小数点后位数。
例如:
select cast(round(12.5,2) as numeric(5,2))  
c++运算符重载
CrazyMizzz
C++
一、加+,减-,乘*,除/ 的运算符重载
Rational operator*(const Rational &x) const{
return Rational(x.a * this->a);
}
在这里只写乘法的,加减除的写法类似
二、<<输出,>>输入的运算符重载
&nb
hive DDL语法汇总
daizj
hive 修改列 DDL 修改表
hive DDL语法汇总
1、对表重命名
hive> ALTER TABLE table_name RENAME TO new_table_name;
2、修改表备注
hive> ALTER TABLE table_name SET TBLPROPERTIES ('comment' = new_comm
jbox使用说明
dcj3sjt126com
Web
参考网址:http://www.kudystudio.com/jbox/jbox-demo.html jBox v2.3 beta [
点击下载]
技术交流QQGroup:172543951 100521167
[2011-11-11] jBox v2.3 正式版
- [调整&修复] IE6下有iframe或页面有active、applet控件
UISegmentedControl 开发笔记
dcj3sjt126com
// typedef NS_ENUM(NSInteger, UISegmentedControlStyle) {
// UISegmentedControlStylePlain, // large plain
&
Slick生成表映射文件
ekian
scala
Scala添加SLICK进行数据库操作,需在sbt文件上添加slick-codegen包
"com.typesafe.slick" %% "slick-codegen" % slickVersion
因为我是连接SQL Server数据库,还需添加slick-extensions,jtds包
"com.typesa
ES-TEST
gengzg
test
package com.MarkNum;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation
为何外键不再推荐使用
hugh.wang
mysql DB
表的关联,是一种逻辑关系,并不需要进行物理上的“硬关联”,而且你所期望的关联,其实只是其数据上存在一定的联系而已,而这种联系实际上是在设计之初就定义好的固有逻辑。
在业务代码中实现的时候,只要按照设计之初的这种固有关联逻辑来处理数据即可,并不需要在数据库层面进行“硬关联”,因为在数据库层面通过使用外键的方式进行“硬关联”,会带来很多额外的资源消耗来进行一致性和完整性校验,即使很多时候我们并不
领域驱动设计
julyflame
VO DAO 设计模式 DTO po
概念:
VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对
单例设计模式
hm4123660
java Singleton 单例设计模式 懒汉式 饿汉式
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
&nb
logback
zhb8015
log logback
一、logback的介绍
Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-class
整合Kafka到Spark Streaming——代码示例和挑战
Stark_Summer
spark storm zookeeper PARALLELISM processing
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管。本文,Michael详细的演示了如何将Kafka整合到Spark Streaming中。 期间, Michael还提到了将Kafka整合到 Spark Streaming中的一些现状,非常值得阅读,虽然有一些信息在Spark 1.2版
spring-master-slave-commondao
王新春
DAO spring dataSource slave master
互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时的db操作,又是系统优化的重中之重。
为此,往往搭建 db的 一主多从库的 数据库架构。作为web的DAO层,要保证针对主库进行写操作,对多个从库进行读操作。当然在一些请求中,为了避免主从复制的延迟导致的数据不一致性,部分的读操作也要到主库上。(这种需求一般通过业务垂直分开,比如下单业务的代码所部署的机器,读去应该也要从主库读取数