1.重新排列数组
class Solution {
public int[] shuffle(int[] nums, int n) {
int [] ans = new int [2 * n];
for(int i = 0; i <= n -1 ; i++){
ans[2*i] = nums[i];
ans[2*i + 1] = nums[i + n];
}
return ans;
}
}
2.数组串联
class Solution {
public int[] getConcatenation(int[] nums) {
int [] arr =new int [2 * nums.length ];
for(int i = 0 ; i < nums.length; i++){
arr[i] = nums[i];
}
for(int i = nums.length ; i < 2*nums.length ;i++){
arr[i] = nums[i - nums.length];
}
return arr;
}
}
3.基于排列构建数组
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.一维数组的动态和
class Solution {
public int[] runningSum(int[] nums) {
for (int i = 1; i < nums.length; i++) {
nums[i] =nums[i] + nums[i - 1];
}
return nums;
}
}
5.剑指 Offer 58 - II. 左旋转字符串
/**
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。
请定义一个函数实现字符串左旋转操作的功能。
比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
*/
/**列表遍历拼接*/
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder res = new StringBuilder();
for(int i = n; i < s.length(); i++){
res.append(s.charAt(i));
}
for(int i = 0; i < n; i ++){
res.append(s.charAt(i));
}
return res.toString();
}
}
6.1108. IP 地址无效化
public class Solution {
public String defangIPaddr(String address) {
return address.replaceAll("\\.","[.]");
}
}
7.替换空格
/**
请实现一个函数,把字符串 s 中的每个空格替换成"%20"
*/
class Solution {
public String replaceSpace(String s) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c == ' '){
sb.append("%20");
}else {
sb.append(c);
}
}
return sb.toString();
}
}
8.有多少小于当前数字的数字
class Solution {
public int[] smallerNumbersThanCurrent(int[] nums) {
int[] arr = new int[nums.length];
for (int i = 0; i < nums.length; i++) {
int count = 0;
for (int j = 0; j < nums.length; j++) {
if (nums[j] < nums[i]) {
count++;
}
}
arr[i] = count;
}
return arr;
}
}
9.打印从1到最大的n位数
class Solution {
public int[] printNumbers(int n) {
int end = (int)Math.pow(10, n) - 1;
int [] arr = new int [end];
for(int i = 0; i < end; i++){
arr[i] = i + 1;
}
return arr;
}
}
10.按既定顺序创建目标数组
class Solution {
public int[] createTargetArray(int[] nums, int[] index) {
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < nums.length; i++) {
list.add(index[i],nums[i]);
}
int i=-1;
for (Integer integer : list) {
i++;
nums[i]=integer;
}
return nums;
}
}