💟💟前言
🥇作者简介:友友们大家好,我是你们的小王同学😗😗
🥈个人主页:小王同学🚗
🥉 系列专栏:牛客刷题专栏📖
📑 推荐一款非常火的面试、刷题神器👉 牛客网
觉得小王写的不错的话 麻烦动动小手 点赞👍 收藏⭐ 评论📄
今天给大家带来的刷题系列是:
剑指offer 链接:👉 剑指offer
目录
里面有非常多的题库 跟面经知识 真的非常良心了!!
二叉树对称的要求满足:
- 两棵树的根节点相同
- 两颗子树的左右子树分别对称
- a的左子树与b的左子树的值对应相等
- a的右子树的与b的右子树的值对应相等
我们可以定义一个check方法 来检查两颗子树是否满足对称条件~
- import java.util.*;
- /*
- public class TreeNode {
- int val = 0;
- TreeNode left = null;
- TreeNode right = null;
- public TreeNode(int val) {
- this.val = val;
- }
- }
- */
- public class Solution {
- boolean isSymmetrical(TreeNode pRoot) {
- return cheack(pRoot,pRoot);
-
-
- }
- boolean cheack(TreeNode a,TreeNode b) {
- if(a==null && b==null) return true;
- if(a==null||b==null) return false;
- if(a.val!=b.val) return false;
- return cheack(a.left,b.right)&cheack(a.right,b.left);
-
-
- }
- }
过啦~~
一道比较经典的dfs
回溯完了记得剪枝~
- import java.util.*;
-
-
- public class Solution {
- /**
- * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
- *
- *
- * @param str string字符串
- * @return string字符串ArrayList
- */
- public ArrayList
Permutation (String str) { - ArrayList
list=new ArrayList<>(); - StringBuilder sub= new StringBuilder();
- char strs[]=str.toCharArray();
- Arrays.sort(strs);
- dfs(list,sub,strs,0,new boolean[strs.length]);
- return list;
-
- }
-
- void dfs(ArrayList
list,StringBuilder sub, char[]strs,int index,boolean[]vis) { - if(index==strs.length){
- list.add(sub.toString());
- return ;
-
- }
- for(int i=0;i
- if(i>0 && strs[i-1]==strs[i]&&!vis[i-1]||vis[i])continue;
- sub.append(strs[i]);
- vis[i]=true; //用过的字符 标记为true
- dfs(list,sub,strs,index+1,vis);
- vis[i]=false;
- sub.deleteCharAt(index);
- }
-
-
- }
- }
题目描述🍨
JZ50 第一个只出现一次的字符🍨
解题思路🍨
1.根据字符串的api idexOf 跟lastindexOf 就是字符串第一次出现的索引跟最后一次出现的索引如果是同一个数证明出现了一次
2.还有一种办法是用一个哈希来存 遍历完了次数++ 如果最后次数=1就是出现一次的字符!
这道题可以两种方法来做
代码详解🍨
方法1:
- public class Solution {
- public int FirstNotRepeatingChar(String str) {
- int len=str.length();
- for(int i=0;i
- char ch=str.charAt(i);
- if(str.lastIndexOf(ch)==str.indexOf(ch))
- {
- return i;
- }
- }
- return -1;
-
-
- }
- }
方法2:
- public class Solution {
- public int FirstNotRepeatingChar(String str) {
- int len=str.length();
- int map[]=new int[256];
- for(int i=0;i
- map[str.charAt(i)]++;
- }
- for(int i=0;i
- if( map[str.charAt(i)]==1){
- return i;
- }
- }
-
- return -1;
-
- }
- }
牛客是一款不论是面试 还是刷题 都是非常有用的 还等什么注册其来吧!👉👉 牛客网
-
相关阅读:
“蔚来杯“2022牛客暑期多校训练营(补题合集)
中秋征文 | 【云原生之Docker】使用docker部署内网穿透工具FRP
R语言连接 Spark
干货 | 什么是特性团队/功能团队(FeatureTeam)
时序与空间结构
网页颜色搭配表及颜色搭配技巧
【LinuxC语言】手撕Http之处理POST请求
【React源码】(十一)fiber 树渲染
了解操作系统,什么是操作系统Operation System?
亚马逊主图视频的那些事儿
-
原文地址:https://blog.csdn.net/weixin_59796310/article/details/126360213