当前位置:网站首页>June brush question 01 - array
June brush question 01 - array
2022-07-06 09:38:00 【A Guang chasing dreams】
Brush questions in June 01—— Array
Today's brush topic content : Array
Preface
- Update the problem solution content of the problem brush every day
- Focus on personal understanding , Look at the difficulty and update the number of questions
- The title comes from Li Kou
- Try to work out at least one question every day
- Language java、python、c\c++
One 、 Today's topic
- 1588. The sum of all odd length subarrays
- 1848. Minimum distance to target element
- 1652. Dismantle the bomb
- 1640. Can you join to form an array
Two 、 Their thinking
1. 1588. The sum of all odd length subarrays
- Require the sum of all odd subsequences
- That is, start traversing from each element , Add the current element sum to the result when it is an odd number of elements
- Return the result
class Solution {
public int sumOddLengthSubarrays(int[] arr) {
int i = 0, j, count = 0, ans = 0;
int n = arr.length;
while( i < n){
j = i;
count = 0;
while(j < n){
count += arr[j];
if ((j - i + 1) % 2 == 1){
ans += count;
}
j++;
}
i++;
}
return ans;
}
}
2. 1848. Minimum distance to target element
- Find the subscript of the element , Maintain a minimum value
class Solution {
public int getMinDistance(int[] nums, int target, int start) {
int i;
int n = nums.length;
int ret = 10010;
for (i = 0; i < n; ++i){
if (nums[i] == target){
ret = Math.min(ret, Math.abs(i - start));
}
}
return ret;
}
}
3. 1652. Dismantle the bomb
- according to
kThere are three cases for the value of , For the sake of understanding , Directly mark the three situations- If
kby 0 Back to full 0 that will do- If
kGreater than or less than 0, There are two scenarios , The expansion here is larger than 0 Of
- If
i+kGreater than the rightmost subscript of the array , It will return to the first... From the beginning of the arrayi + k - nA place- If it is less than the rightmost subscript of the array , Then add it directly
- Less than 0 It's the same thing
class Solution {
public int[] decrypt(int[] code, int k) {
int i, n = code.length;
int t = k;
int[] ret = new int[n];
if (k == 0){
return ret;
}else if (k < 0){
for (i = 0; i < n; ++i){
int temp = 0;
while(k < 0){
if (i + k < 0){
temp += code[n + i + k];
}else{
temp += code[i + k];
}
k++;
}
k = t;
ret[i] = temp;
}
}else{
for (i = 0; i < n; ++i){
int temp = 0;
while(k > 0){
if (i + k > n - 1){
temp += code[i + k - n];
}else{
temp += code[i + k];
}
k--;
}
k = t;
ret[i] = temp;
}
}
return ret;
}
}
4. 1640. Can you join to form an array
There are two ways of thinking about this question
Train of thought
The first is to use hash table
1, Convert all subsets of the two-dimensional array into strings as
keyIn the hash table , Defaultvaluebyfalse
2. Traversing a one-dimensional array , If the current number exists in the... Of the hash tablekeyin , WillvalueSet astrue
3. Splice the current numbers in order , Judge whether there is inkeyin , If it exists, repeat step 2
class Solution {
public boolean canFormArray(int[] arr, int[][] pieces) {
// Define a hash table
HashMap<String, Boolean> map = new HashMap<>();
int i = 0, j, n = arr.length;
// Convert all subsets in the two-dimensional array into strings and store them in the hash table
for(int[] item: pieces){
String s = Integer.toString(item[0]);
for(int k = 1; k < item.length; k++){
s += Integer.toString(item[k]);
}
map.put(s, false); // By default value Set as false
}
while(i < n){
String s = Integer.toString(arr[i]);
// If it is a single subset ( There's only one number )
if (map.containsKey(s)){
map.put(s, true);
}else{
// Is a subset of multiple numbers
for(j = i+1; j < n; j++){
s += Integer.toString(arr[j]);
if (map.containsKey(s)){
map.put(s, true);
i = j;
break;
}
}
}
i++;
}
// Traverse to see if there is still false Value
for (Boolean b: map.values()){
if (!b) return false;
}
return true;
}
}
Train of thought two :
- Traversing a one-dimensional array , Use one flag Identify the return result
- Find an equal number from the second array , It must be arranged in order
- according to flag Judge the result
class Solution {
public boolean canFormArray(int[] arr, int[][] pieces) {
int i = 0, j, k;
boolean flag;
while (i < arr.length){
flag = false;
for(j = 0; j < pieces.length; j++){
// If the first is not equal to arr[i] Then skip
if (pieces[j][0] != arr[i]){
continue;
}
// First equals arr[i] when , Judge pieces[j] Whether the subset of and arr The next number corresponds to
for(k = 0; k < pieces[j].length; k++){
if (pieces[j][k] == arr[i]){
i++;
flag = true;
}else{
return false;
}
}
// If at this time i The traversal is complete
if (i == arr.length){
return true;
}
}
if(!flag){
return false;
}
}
return true;
}
}
边栏推荐
- [daily question] Porter (DFS / DP)
- 018. Valid palindromes
- Withdrawal of wechat applet (enterprise payment to change)
- 基于B/S的网上零食销售系统的设计与实现(附:源码 论文 Sql文件)
- Redis之cluster集群
- [Yu Yue education] reference materials of power electronics technology of Jiangxi University of science and technology
- 工作流—activiti7环境搭建
- 解决小文件处过多
- Full stack development of quartz distributed timed task scheduling cluster
- 《ASP.NET Core 6框架揭秘》样章发布[200页/5章]
猜你喜欢

Hard core! One configuration center for 8 classes!

Reids之缓存预热、雪崩、穿透

QML type: locale, date

Full stack development of quartz distributed timed task scheduling cluster

解决小文件处过多

Sqlmap installation tutorial and problem explanation under Windows Environment -- "sqlmap installation | CSDN creation punch in"

Minio distributed file storage cluster for full stack development

MapReduce instance (VIII): Map end join

Kratos战神微服务框架(一)

面渣逆袭:Redis连环五十二问,图文详解,这下面试稳了
随机推荐
MapReduce instance (IX): reduce end join
Parameterization of postman
MapReduce instance (IV): natural sorting
Research and implementation of hospital management inpatient system based on b/s (attached: source code paper SQL file)
Global and Chinese market for annunciator panels 2022-2028: Research Report on technology, participants, trends, market size and share
Chapter 1 :Application of Artificial intelligence in Drug Design:Opportunity and Challenges
Kratos战神微服务框架(二)
[Chongqing Guangdong education] reference materials for nine lectures on the essence of Marxist Philosophy in Wuhan University
Global and Chinese market of linear regulators 2022-2028: Research Report on technology, participants, trends, market size and share
Multivariate cluster analysis
基于B/S的影视创作论坛的设计与实现(附:源码 论文 sql文件 项目部署教程)
Redis之主从复制
Appears when importing MySQL
QDialog
Redis之持久化实操(Linux版)
In order to get an offer, "I believe that hard work will make great achievements
What is an R-value reference and what is the difference between it and an l-value?
Redis' bitmap
面渣逆袭:Redis连环五十二问,图文详解,这下面试稳了
DCDC power ripple test