- 博客(9)
- 收藏
- 关注
原创 剑指 Offer . 二进制中1的个数(4.2)
剑指 Offer . 二进制中1的个数(4.2)题目描述:请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。解题思路:二进制的&运算 n&(n-1)
2021-04-02 21:54:10
82
原创 剑指 Offer . 第一个只出现一次的字符(3.31)
剑指 Offer . 第一个只出现一次的字符(3.31)题目描述:在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例 1:s = "abaccdeff"返回 "b"s = "" 返回 " "解题思路:面对一个字符串,判断里面单的字符,首先要想到转换成字符数组,挨个遍历其中的字符。然后根据hashmap的特点不能存储重复元素,所以遍历的过程将字符作为key往hashmap 中添加,如果有重复,在value中标记,最后再遍历得到value中第一
2021-03-31 11:20:41
80
原创 剑指 Offer . 从尾到头打印链表(3.28)
剑指 Offer 替换空格(3.28)题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."解题思路: 由于字符串是不可变序列,所以使用StringBuilder, 将原字符串转化为Char数组,然后遍历,如果不为空的话采用append方法将该元素拼接,如果遇到空格的话,则拼接%20;具体代码:class Solution { public String
2021-03-28 10:19:10
85
原创 剑指offer 求解数组中重复的数(3.28)
剑指offer 求解数组中重复的数(3.28)题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 解题思路:数组中每个数都有索引下标,可以通过原地调换位置把让数组中每个数和自己索引值一样,如果碰到两个一样的数则返回。具体代码: public int findRep
2021-03-28 10:12:13
123
原创 选择排序java实现
选择排序排序思想:选择排序(Selection sort)是一种简单直观的排序算法,每次遍历选出数组中最大的元素并且把它放到最后一位,然后除去已经选出的元素,对其他元素进行相同的操作直到排好。排序步骤:第一步: 进行遍历选出数组中元素最大的元素并且记录其索引。int max = 0;for (int begin = 0; begin <= end; begin++) { if (arr[max] <= arr[begin]) { max = begin ;
2021-03-26 18:11:35
74
原创 冒泡排序及优化
冒泡排序排序思想 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。算法步骤: 第一步:比较相邻元素,如果第一个比第二个大,就交换他们。for(int begin =0;begin<arr.length-1;begin++) {
2021-03-26 13:53:27
197
原创 实现单链表头插尾插。
数据结构--单链表头插尾插头插法:尾插法:头插法:该方法从空表开始,生成新的结点,并将读取到的数据存放在新结点的数据域中,然后将新结点插入到当前链表的表头,即头结点之后。下面展示代码#include<stdio.h>#include<stdlib.h> typedef struct LNode{ int data; struct LNode *next; }LNode , *LinkList; LinkList List_HeadInsert(L
2020-11-21 22:19:49
161
原创 需求工程大作业
一、领域业务简单介绍: 随着我国经济实力的发展,"精准扶贫"工作也已经普及到各大高校,比如在我校团委学生会助困部每年围绕“奖助贷勤免补征”七字方针开展工作,对各个家庭经济困难学生进行困难帮扶。其中勤工助学就是其中一个很大的模块,但由于过程繁琐,工作很难做的公开化,公平化。考核难以做到系统化,合理化,所以“勤工助学”系统就应运而生,成为各大高校勤工助学发展使用的趋势。二、获取问题: &nb
2020-11-05 21:32:04
277
原创 LinkedList底层方法实现
LinkedList 底层实现与分析。Learning Notes:一、 学习了LinkedList之后,手写了简单的四个方法(大牛勿喷)。 笔记如下二、编程思路1.1 节点的属性定义:前驱节点,后继节点、数据域1.2 add()方法:有两种情况(1)当链表一个节点都没有的时候,首先创建一个节点,然后将前驱节点和后继节点都赋值为null,这样头节点和尾节点都是同一个节点。(2)当链表中存在节点的时候,默认采用尾插法的形式添加,还是先创建一个节点,然后将新节点的前驱节点指向老节点,后继节点
2020-07-29 15:27:16
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人