- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
LeetCode: 1394. 找出数组中的幸运数
描述:
在整数数组中,如果一个整数的出现频次和它的数值大小相等,我们就称这个整数为「幸运数」。
给你一个整数数组 arr,请你从中找出并返回一个幸运数。
class Solution {
public int findLucky(int[] arr) {
int[] count = new int[501];
for(int val : arr) {
count[val]++;
}
for(int i = arr.length; i>0 ;i--) {
if(count[i] == i){
return i;
}
}
return -1;
}
}
LeetCode: 1512. 好数对的数目
描述:
给你一个整数数组 nums
。
如果一组数字 (i,j)
满足 nums[i] == nums[j] 且 i < j
,就可以认为这是一组 好数对 。
返回好数对的数目。
例如 1, 1, 1, 3
第一次出现1, res不进行相加, 此时计数1次
第二次出现1, res相加, res=1, 此时计数2次
第三次出现1, res相加, res=3, 此时计数3次
遍历结束 返回res
class Solution {
public int numIdenticalPairs(int[] nums) {
int[] count = new int[101];
int res = 0;
for(int num : nums) {
res += count[num];
count[num]++;
}
return res;
}
}
LeetCode: 面试题 10.11. 峰与谷
描述:
在一个整数数组中,“峰”是大于或等于相邻整数的元素,相应地,“谷”是小于或等于相邻整数的元素。例如,在数组{5, 8, 4, 2, 3, 4, 6}中,{8, 6}是峰, {5, 2}是谷。现在给定一个整数数组,将该数组按峰与谷的交替顺序排序。
class Solution {
public void wiggleSort(int[] nums) {
int[] arr = new int[nums.length];
for(int i = 0; i < nums.length; i++) {
arr[i] = nums[i];
}
Arrays.sort(arr);
int left = 0;
int right = arr.length-1;
for(int i = 0; i < nums.length; i++) {
if(i%2==0){
nums[i] = arr[right--];
}else{
nums[i] = arr[left++];
}
}
}
}
LeetCode: 面试题 16.26. 计算器
描述:
给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。
表达式仅包含非负整数,+, - ,*,/
四种运算符和空格 。 整数除法仅保留整数部分。
如果再次发现是加减乘除的时候, 查看前一个操作符是什么
如果是 -
, 存入 -num
如果是 +
, 存入 num
如果是 *
, 存入 stack.pop() * num
如果是 /
, 存入 stack.pop() / num
结束遍历之后, 栈存入就全部是数据了, 此时直接将所有的数据进行相加就是结果
class Solution {
public int calculate(String s) {
Stack<Integer> stack = new Stack<>();
// 方便第一次直接入栈
char opt = '+';
int num = 0;
for(int i = 0; i < s.length(); i++) {
if(Character.isDigit(s.charAt(i))){
num = num * 10 + (s.charAt(i) - '0');
}
if((!Character.isDigit(s.charAt(i)) && s.charAt(i)!=' ') || i == s.length() - 1){
if(opt == '+') stack.push(num);
else if(opt == '-') stack.push(-num);
else if(opt == '*') stack.push(stack.pop() * num);
else stack.push(stack.pop() / num);
num = 0;
opt = s.charAt(i);
}
}
int res = 0;
while(!stack.isEmpty()){
res += stack.pop();
}
return res;
}
}
LeetCode: 面试题 17.12. BiNode
描述:
二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。
返回转换后的单向链表的头节点。
class Solution {
TreeNode cur = new TreeNode(-1);
TreeNode pre = cur;
public TreeNode convertBiNode(TreeNode root) {
if (root == null) return null;
convertBiNode(root.left);
cur.right = root;
root.left = null;
cur = root;
convertBiNode(root.right);
return pre.right;
}
}
LeetCode: 面试题 17.19. 消失的两个数字
描述:
给定一个数组,包含从 1 到 N 所有的整数,但其中缺了两个数字。你能在 O(N) 时间内只用 O(1) 的空间找到它们吗?
以任意顺序返回这两个数字均可。
total
1 ~ len(nums)+2
的和 sum
.sum - total
求出消失两个数的和.mid
mid
的数字和, 1 ~ mid
中肯定有一个消失的数字.class Solution {
public int[] missingTwo(int[] nums) {
int total = 0;
for(int num : nums) {
total += num;
}
int sum = (nums.length+2+1)*(nums.length+2)/2 - total;
int mid = sum/2;
total = 0;
for(int num : nums) {
if(num <= mid) {
total += num;
}
}
int res = (1+mid)*mid/2 - total;
return new int[]{res, sum-res};
}
}
我有两个关于这段代码的问题。 double*** pdata 和 int*** pmask 是什么意思?指向指针的指针?为什么或何时需要这样做? int 和 double 是不同的类型,double*
谁能用英文解释一下这是怎么回事? std::vector cats; //I get that cats is a vector of Cat objects if (std::find(cats.b
在C中,下列声明有区别吗: float DoSomething( const float arr[] ); 对比 float DoSomething( const float* arr ); 一个比另
我到 question 36我认为这很简单。像往常一样,我显然错了。我正在尝试在 Python 中执行此操作(因为我不知道 Python)。我的代码如下。我得到 19 作为输出,这显然是不正确的。我不
我已经通读了 MSDN 上的 Winsock2 文档,但如果有人能提供帮助,我仍然需要澄清一些事情。 我计划做一些类似于您在使用 WSAAsyncSelect() 时获得的设置,但使用一个单独的线程。
#include int main () { int *p = (int *)malloc((100*sizeof(int))); p++; free(p); /* do some
我想提供未知的“对象”并返回其成员之一的值。在 C# 中需要响应。 一般来说,我想我正在寻找这个方法的代码公共(public)静态对象 GetObjectMemberValue (object myO
由异常准确的 AI 提供支持的 20 个问题的简单在线游戏。 他们怎么猜得这么好? 最佳答案 您可以将其视为二进制搜索算法。在每次迭代中,我们都会提出一个问题,该问题应该会消除大约一半的可能单词选择。
拜托,有人可以解释一下吗: 如果文档说 STL std::vector finding element speed performace = O(ln(n)),这是什么意思。 O(ln(n)) - 什
我正在尝试通过遵循 Microsoft 为 ADSI API 和 Windows-RS crate 发布的 c++ 示例来使用 Rust 的事件目录。我不太明白这里发生了什么: https://doc
这是处理具有重复元素的单个列表的 nieve 案例,我在处理一些嵌套列表时遇到了麻烦,所以我想先写简单的案例。 所以我有: (defn packDuplicatesIntoLists [lis
我是新来的。我正在尝试解决此练习 Problem 18只是为了加强我的解决能力。我已经编码了答案。该任务要求“在 1,000,000 以下的质数中,有多少个数位之和等于两周中的天数?” (两周是 14
我正在尝试对POCO类中的某些字段进行索引,并将某些属性装饰为“忽略= true”,并且这些字段不应被索引,而应该被存储。我希望这些字段出现在搜索结果中,但不应作为索引。 我正在尝试对应索引的几个字段
我是编码的新手,正在尝试通过完成 Project Euler 问题来学习 Swift。我似乎有导致大量错误的不同版本的 Swift 代码。如果您对我的问题的格式有任何建议以供将来引用,请告诉我,谢谢。
对于problem statement在 google codejam 2008:第 1A 轮问题 3 In this problem, you have to find the last three
我是一名优秀的程序员,十分优秀!