public static int soul(int nums[],int n){
int sum=0;
for(int i=0;i<n;i++){
sum+=nums[i];
}
return sum;
}
}
=======================================================================================================================
真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】
======
这题参考了一下评论区的想法
class Solution {
public String reverseLeftWords(String s, int n) {
StringBuilder sb=new StringBuilder();
for(int i=n;i<s.length();i++){
sb.append(s.charAt(i));//从n开始得到每个字符
}
for(int i=0;i<n;i++){
sb.append(s.charAt(i));//将第一个到n依次加到之前的后面
}
return sb.toString();//转为字符串后返回
}
}
第六题:1108. IP 地址无效化
==================================================================================================
class Solution {
public String defangIPaddr(String address) {
StringBuilder sb=new StringBuilder();
for(int i=0;i<address.length();i++){
if(address.charAt(i) == ‘.’){//当等于’.'时不加进去,而加"[.]"这样就完成了替换
sb.append(“[.]”);
continue;
}
sb.append(address.charAt(i));
}
return sb.toString();
}
}
====================================================================================================
class Solution {
public String replaceSpace(String s) {
StringBuilder sb=new StringBuilder();
for(int i=0;i<s.length();i++){
if(s.charAt(i)==’ '){
sb.append(“%20”);
continue;
}
sb.append(s.charAt(i));
}
return sb.toString();
}
}
字符串替换总结:
这种字符串替换的问题,其实一个思路,先创建StringBuilder类,在一个for循环中通过
s.charAt(i)得到s字符串中的每个字符,在通过比对要换的字符,比对成就加入替换的字符
在通过此次字符暂停(continue),StingBuilder对象.append(s.charAt(i))即可.最后通过
toSting()返回即可.
======================================================================================================================================
第一想法的老方法
class Solution {
public int[] smallerNumbersThanCurrent(int[] nums) {
int count=0;
int n=nums.length;
int arr[]=new int[n];
for(int i=0;i<n;i++){
count=soul(nums,i);
arr[i]=count;
}
return arr;
}
public static int soul(int nums[],int n){
int sum=0;
for(int i=0;i<nums.length;i++){
if(n!=i){
if(nums[n]>nums[i]){
sum++;
}
}
}
return sum;
}
}
======================================================================================================================================
class Solution {
public int[] printNumbers(int n) {
int number=1;
//几个n就弄到几位数
for(int i=0;i<n;i++){
number*=10;
}
//由题可知申请number-1即可
int []arr=new int[number-1];
for(int i=0,j=1;i<number-1;i++,j++){
arr[i]=j;
}
return arr;
}
}
=======================================================================================================================
class Solution {
public int[] createTargetArray(int[] nums, int[] index) {
//创建一个集合
ArrayList array = new ArrayList();
for(int i=0; i<nums.length; i++) {
//通过集合的add方法对指定索引进行插入
array.add(index[i],nums[i]);
}
int[] target = new int[array.size()];
//遍历集合将集合中的元素插入
for(int i=0; i<target.length; i++) {
target[i] = array.get(i);
}
return target;
}
}
最后
总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了
//遍历集合将集合中的元素插入
for(int i=0; i<target.length; i++) {
target[i] = array.get(i);
}
return target;
}
}
最后
总的来说,面试官要是考察思路就会从你实际做过的项目入手,考察你实际编码能力,就会让你在电脑敲代码,看你用什么编辑器、插件、编码习惯等。所以我们在回答面试官问题时,有一个清晰的逻辑思路,清楚知道自己在和面试官说项目说技术时的话就好了
[外链图片转存中…(img-8n37a7IQ-1720773424749)]
[外链图片转存中…(img-kYbL2frz-1720773424750)]