2022-11-27 第 321 场周赛

6245. 找出中枢整数

class Solution {
    public int pivotInteger(int n) {
        int left = 1, right = n;
        double sum = (1+n)*n/2.0;
        while (left <= right) {
            int mid = (right - left) / 2 + left;
            double tmp = (1+mid)*mid/2.0;
            if (tmp*2 == sum+mid) {
                return mid;
            } else if (tmp*2 < sum+mid) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        return -1;
    }
}

6246. 追加字符以获得子序列

class Solution {
    public int appendCharacters(String s, String t) {
        int i = 0, j = 0, cnt = 0;
        while (i < s.length() && j < t.length()) {
            while (i < s.length() && s.charAt(i) != t.charAt(j)) {
                i++;
            }
            if (i < s.length() && s.charAt(i) == t.charAt(j)) {
                cnt++;
                i++;
                j++;
            }
        }
        if (j == t.length()) {
            return 0;
        }
        return t.length() - cnt;
    }
}

6247. 从链表中移除节点

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode removeNodes(ListNode head) {
        ListNode demo = new ListNode(0);
        demo.next = head;
        ListNode h = demo;
        ListNode cur = head;
        while (cur.next != null) {
            if (cur.val >= cur.next.val) {
                demo = cur;
                cur = cur.next;
            } else {
                ListNode d = h;
                ListNode c = h.next;
                while (c.val >= cur.next.val) {
                    d = c;
                    c = c.next;
                }
                d.next = cur.next;
                demo = d;
                cur = cur.next;
            }
        }
        return h.next;
    }
} 
```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值