- Scan。找出每个解的唯一标识，根据标识知道解的集合。挨个扫描所有标识，算出各个标识对应的解。扫描过程记录当前最优解。1758. Minimum Changes To Make Alternating Binary String
- Binary search。找出解集合的可能范围，但并非这个这个范围内的值都是合法的解。通常带有限制条件判断该值是不是合法的解。通过binary search找出最优的合法解。1760. Minimum Limit of Balls in a Bag
About the job
Facebook’s mission is to give people the power to build community and bring the world closer together. Through our family of apps and services, we’re building a different kind of company that connects billions of people around the world, gives them ways to share what matters most to them, and helps bring people closer together. Whether we’re creating new products or helping a small business expand its reach, people at Facebook are builders at heart. Our global teams are constantly iterating, solving problems, and working together to empower people around the world to build community and connect in meaningful ways. Together, we can help people build stronger communities – we’re just getting started.
We are currently seeking an Operating Systems Engineer with strong design and build skills, passion for low-level systems software and device driver programming, hands-on experience working on Operating Systems at all layers from firmware to cloud, and experience with shipping hardware/software products.
You are the kind of engineer who has expertise creating reliable, robust, and performant systems software at all layers of the stack. You are fluent in multiple areas of classic Operating Systems e.g., threading, scheduling, memory management, I/O and device models, security. If asked, you have the skills to design and build your own competitive replacement. You have hands-on experience bringing up new hardware and software systems and you have significant experience debugging and repairing complex, multi-component system level issues using a variety of OS and bus level debugging tools, e.g. USB/Firewire/Ethernet protocol analyzers, kernel debuggers, OS event tracing infrastructure, etc.
- Design and implement OS components at all layers of the system, e.g. kernel, synchronization primitives, resource allocators, memory management, security, I/O systems, persistence, etc.
- Design and implement device and bus drivers that operate efficiently in a constrained environment yet when pressed can efficiently deliver large volumes of data with low-latency and high-bandwidth.
- Debug complex, system-level, multi-component issues that typically span across multiple layers from kernel to application.
- Profile performance problems and drive optimizations that span the entire software stack.
- Bring up new devices and lead debugging and performance tuning exercises that span multiple hardware/firmware/software teams.
- Understand software components from multiple partner teams, lead the integration of those components into the unified product code base, and drive their continued development.
- 5+ years experience working on systems software in a large-scale C code base.
- Demonstrated knowledge of operating systems internals on at least one platform.
- Demonstrated knowledge creating device drivers on at least one platform.
- Experience developing, debugging, and shipping software products on large code bases that span platforms and tools.
- Experience with Software Development processes including: source control, bug tracking, and design documentation.
- Demonstrated experience working collaboratively in cross-functional teams.
- Experience with power management and modern systems architecture.
- Experience with specialized kernel functions: synchronization primitives, memory management, schedulers and dispatchers, TLB management.
- Experience working on multiple classes of drivers e.g., bus, block, wireless, display drivers.
- Experience with low-latency, high bandwidth, streaming hardware devices, e.g. video cameras, graphics cards, etc.
- Experience with new device bring-up.
- Experience with ARM platforms.
- Experience creating, debugging, and deploying on-device firmware (MCU and/or DSP).
Facebook is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sex (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law. Facebook is committed to providing reasonable accommodations for candidates with disabilities in our recruiting process. If you need any assistance or accommodations due to a disability, please let us know at email@example.com.