- 博客(15)
- 收藏
- 关注
原创 p1055java的字符串
题目对字符串的运用,挑出特定的元素进行操作。可以先把字符串转char数组String a=in.nextLine();char[] b=a.toCharArray();也可以用charAt(i)方法得到字符串中某一单个字符可以依次得到单个元素后还不能进行运算,因为得到的元素是char类型,需要做一下转换char转int需要两步,于是就有Integer.parseInt(String.valueOf(b[i]))由于字符串中有“-”号,无法转成int,于是得加上异常的处理try{/
2021-02-07 15:01:08 187
原创 232.与225.栈队的互相实现下的初用队
这两道题写下来感觉是对队与栈的熟悉。C艹中队的函数:push() :从队尾压入pop() : 从队头弹出size() :返回队列的元素个数empty() :判断队列是否为空,为空返回true,反之返回falsefront() :返回队头的元素,就是最先压入的元素back() :返回队尾的元素,就是最后压入的元素详细232.用栈实现队列。用两个栈,一个用来出 一个入。当入时全部压入入栈,出时直接出出栈里的元素,当出栈为空才让入栈元素全部压入出栈,最后再来出出栈里的元素。225.用队实现栈
2020-11-04 17:17:51 76
原创 844和1544.比较与整理字符串下的串的运用
之前在刷题的时候,有遇到顺序输出处理过的字符串的时候。但用的栈来处理,结果是字符串会倒置。于是看到了直接拿字符串进行的出栈入栈的操作,这样不仅不会倒置而且可以直接返回字符串。比如st.back();st.push_back(a);st.pop_back();st.empty();这...
2020-10-31 19:55:42 121
原创 155.最小栈下的共享栈的运用
一开始想的是用另外一个变量来遍历栈内元素,康康谁最小(就是//里的内容)。但是编译出错了,说明栈内的top虽然是伪指针,依然不能像数组一样遍历栈内每一个元素。之后想用两个栈,一个数据栈一个存当前栈中的最小数,但接口只能接一个栈。最后兜兜转,划零为整用了共享栈,两个栈放入一个栈里。共享栈:存入第一个数时,数据与最小栈一起存入。存入其他数时,先存到数据栈里,然后存当前数据栈里面最小的数到最小栈里。出栈时两个栈一起出,保证两个栈内元素数相等。typedef struct { int data[10
2020-10-28 17:58:22 124
原创 1021和20 初用栈
一开始不是很懂怎么用栈列举几个吧初始化一个存放char类型的栈stack<char> st;栈是否为空st.empty()入栈和出栈st.push(c)st.pop()参数:不需要传递任何值作为参数。返回值:直接引用堆栈容器的顶部元素st.top()关于unordered_map <char,int> m{}的使用站外佬的解释站内佬的解释大概类似哈希表吧,虽然还没学。20.有效括号class Solution {public:
2020-10-23 17:32:08 85
原创 237.删除链表中给定节点
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void deleteNode(ListNode* node) { ListNode* curr=node->ne
2020-10-16 15:35:29 69
原创 234.回文链表下的与或问题
解题思路分成四个部分1.快慢指针2.反转链表3.判断中间数4.对比快慢指针慢指针前进一格,快前进两格。链表节点是奇数,low正好在中间 fast在末尾。链表是偶数,那fast停在倒数第二个节点,low则在中间的前一个节点。边界判断:当链表只有两个数时,low与fast相等。反转链表反转low->next之前的指针边界判断:当链表只有两数时,不执行反转操作,因为会删除两数之间的指针,不会反转两数的指针。这样就导致了在判断中间数的时候,因为a->next==null (本来是a
2020-10-16 09:48:29 100
原创 206.反转链表笔记
迭代法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* prev.
2020-10-13 15:51:26 82
原创 160.相交链表下的逻辑问题
逻辑问题是怎么判断两个链表没有交集。力扣官方的思路是:如果两个链表存在相交,它们末尾的结点必然相同。因此当 遍历结点的指针pA/pB 到达链表结尾时,记录下链表 A/B 对应的元素。若最后元素不相同,则两个链表不相交。所以我的想法是记录下两个尾结点val的值,代码如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode
2020-10-12 20:28:03 691
原创 203.移除链表元素下的new与malloc的问题
先看看代码ListNode* sentinel=new ListNode(0);/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution { public: ListNode* removeElements(L
2020-10-12 19:37:56 158
原创 83.删除排序链表重复的元素
用一般算法实现/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* deleteDuplicates(struct ListNode* head){ if(head==NULL||head->next==NULL) { return head;.
2020-10-09 17:42:08 76
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人