《九日集训》第四天打卡
题目一:
链接:重新排列数组
解题思路:
下标对称,一 一入座
JAVA:
class Solution {public int[] shuffle(int[] nums, int n) {int [] data=new int[nums.length];int k=0;for(int i=0;i<n;i++){data[k]=nums[i];k++;data[k]=nums[n+i];k++;}return data;}}
题目二:
链接:数组串连
解题思路:
下标对称
JAVA:
class Solution {public int[] getConcatenation(int[] nums) {int data[] =new int[nums.length*2];for(int i=0;i<nums.length;i++){data[i]=nums[i];data[nums.length+i]=nums[i];}return data;}
}
题目三:
链接:基于排列构建数组
解题思路:
C++:
class Solution {
public:vector<int> buildArray(vector<int>& nums) {vector<int> l;for(int i=0;i<nums.size();i++){l.push_back(nums[nums[i]]);}return l;}
};
题目四:
链接:一维数组动态求和
解题思路:
a[j]=a[j-1]+a[j]
C++:
class Solution {
public:vector<int> runningSum(vector<int>& nums) {for(int i=0;i<nums.size();i++){if(i==0)continue;else{nums[i]+=nums[i-1];}}return nums;}
};
题目五:
链接:左旋转字符串
解题思路:String的用法
c++:
class Solution {
public:string reverseLeftWords(string s, int n) {string t=s.substr(n,s.size())+s.substr(0,n);return t;}
};
题目六:
链接:Ip地址无效
解题思路:
python:
class Solution(object):def defangIPaddr(self, address):""":type address: str:rtype: str"""t=address.replace('.',"[.]")return t
题目七:
链接:比较数的大小
解题思路:
暴力比较
JAVA:
class Solution {public int[] smallerNumbersThanCurrent(int[] nums) {int data[]=new int[nums.length];for(int i=0;i<nums.length;i++){int k=0;for(int j=0;j<nums.length;j++){if(j!=i&&nums[i]>nums[j])k++;}data[i]=k;}return data;}
}
题目八:
链接 :按既定排序
解题思路:
JAVA:
class Solution {public int[] createTargetArray(int[] nums, int[] index) {for(int i=0;i<index.length;i++){if(index[i]<i){int k=nums[i];for(int j=i;j>index[i];j--){nums[j]=nums[j-1];}nums[index[i]]=k;}}return nums;}
}
《九日集训》第四天打卡
题目一:
链接:重新排列数组
解题思路:
下标对称,一 一入座
JAVA:
class Solution {public int[] shuffle(int[] nums, int n) {int [] data=new int[nums.length];int k=0;for(int i=0;i<n;i++){data[k]=nums[i];k++;data[k]=nums[n+i];k++;}return data;}}
题目二:
链接:数组串连
解题思路:
下标对称
JAVA:
class Solution {public int[] getConcatenation(int[] nums) {int data[] =new int[nums.length*2];for(int i=0;i<nums.length;i++){data[i]=nums[i];data[nums.length+i]=nums[i];}return data;}
}
题目三:
链接:基于排列构建数组
解题思路:
C++:
class Solution {
public:vector<int> buildArray(vector<int>& nums) {vector<int> l;for(int i=0;i<nums.size();i++){l.push_back(nums[nums[i]]);}return l;}
};
题目四:
链接:一维数组动态求和
解题思路:
a[j]=a[j-1]+a[j]
C++:
class Solution {
public:vector<int> runningSum(vector<int>& nums) {for(int i=0;i<nums.size();i++){if(i==0)continue;else{nums[i]+=nums[i-1];}}return nums;}
};
题目五:
链接:左旋转字符串
解题思路:String的用法
c++:
class Solution {
public:string reverseLeftWords(string s, int n) {string t=s.substr(n,s.size())+s.substr(0,n);return t;}
};
题目六:
链接:Ip地址无效
解题思路:
python:
class Solution(object):def defangIPaddr(self, address):""":type address: str:rtype: str"""t=address.replace('.',"[.]")return t
题目七:
链接:比较数的大小
解题思路:
暴力比较
JAVA:
class Solution {public int[] smallerNumbersThanCurrent(int[] nums) {int data[]=new int[nums.length];for(int i=0;i<nums.length;i++){int k=0;for(int j=0;j<nums.length;j++){if(j!=i&&nums[i]>nums[j])k++;}data[i]=k;}return data;}
}
题目八:
链接 :按既定排序
解题思路:
JAVA:
class Solution {public int[] createTargetArray(int[] nums, int[] index) {for(int i=0;i<index.length;i++){if(index[i]<i){int k=nums[i];for(int j=i;j>index[i];j--){nums[j]=nums[j-1];}nums[index[i]]=k;}}return nums;}
}