【力扣九日】day4
1.重新排列数组 力扣1470
class Solution {
public int[] shuffle(int[] nums, int n) {
int [] res = new int[2*n];
for(int i = 0;i < n;i++)
{
res[2*i] = nums[i];
res[2*i+1] = nums[n+i];
}
return res;
}
}
2.数组串联 力扣1929
class Solution {
public int[] getConcatenation(int[] nums) {
int[] ans = new int[nums.length*2];
int n = nums.length;
for(int i=0;i<nums.length;i++){
ans[i] = nums[i];
ans[i + n] = nums[i];
}
return ans;
}
}
3.基于排列构建数组 力扣1920
class Solution {
public int[] buildArray(int[] nums) {
int[] ans = new int[nums.length];
for(int i = 0;i < nums.length;i++){
ans[i] = nums[nums[i]];
}
return ans;
}
}
4.维数组的动态和 力扣1480
class Solution {
public int[] runningSum(int[] nums) {
int n = nums.length;
int[] ans = new int[n];
for (int i = 0, s = 0; i < n; i++) {
ans[i] = s = s + nums[i];
}
return ans;
}
}
5.左旋字符串 剑指offer56
class Solution {
public String reverseLeftWords(String s, int n) {
String a = "";
for(int i = n;i < n + s.length();i++){
a += s.charAt(i % s.length());
}
return a;
}
}
6.IP 地址无效化 力扣1108
直接用+连接字符串
class Solution {
public String defangIPaddr(String address) {
String s = "";
for(int i = 0;i < address.length();i++){
if(address.charAt(i) == '.'){
s += "[.]";
}
else s += address.charAt(i);
}
return s;
}
}
7.替换空格 剑指05
class Solution {
public String replaceSpace(String s) {
String ans = "";
for(int i = 0;i < s.length();i++){
if(s.charAt(i) == ' '){
ans += "%20";
}
else ans += s.charAt(i);
}
return ans;
}
}
8.有多少小于当前数字的数字 力扣1365
class Solution {
public int[] smallerNumbersThanCurrent(int[] nums) {
int[] a = new int[nums.length];
for(int i = 0;i < nums.length;i++){
a[i] = 0;
for(int j = 0;j < nums.length;j++){
if(nums[i] > nums[j]){
a[i]++;
}
}
}
return a;
}
}
9.打印从1到最大数 剑指17
pow方法是求a的b次幂
class Solution {
public int[] printNumbers(int n) {
int e = (int)Math.pow(10,n) - 1;
int[] a = new int[e];
for(int i = 0;i < a.length;i++){
a[i] = i + 1;
}
return a;
}
}